Форум: "Прочее";
Текущий архив: 2012.02.19;
Скачать: [xml.tar.bz2];
ВнизКак лучше называть ключевое (и не только) поля таблиц? Найти похожие ветки
← →
Бездомный (2011-10-27 15:37) [0]Например, таблица пользователей, как лучше:
id,
name,
email,
...
или
user_id,
name,
email,
...
или
user_id,
user_name,
user_email,
...
← →
Ega23 © (2011-10-27 15:38) [1]Так, как принято в соглашении о наименованиях, которое действует там, где ты работаешь.
← →
И. Павел © (2011-10-27 15:40) [2]ИМХО, первый вариант самый удобный. третий вариант вообще не встречал и не понятно - зачем он. Поля с именами типа user_id я использую для вторичных ключей, чтобы было ясно, в какой таблице лежит первичный.
← →
Медвежонок Пятачок © (2011-10-27 15:41) [3]ИМХО, первый вариант самый удобный.
особенно удобно когда в объединении сто таблиц и в каждой есть понятное и удобное поле "name"
← →
Ega23 © (2011-10-27 15:41) [4]
> ИМХО, первый вариант самый удобный. третий вариант вообще
> не встречал и не понятно - зачем он. Поля с именами типа
> user_id я использую для вторичных ключей, чтобы было ясно,
> в какой таблице лежит первичный.
Встречал все три + ещё парочку.
← →
Ega23 © (2011-10-27 15:42) [5]
> особенно удобно когда в объединении сто таблиц и в каждой
> есть понятное и удобное поле "name"
С другой стороны, для ORM весьма удобно.
← →
Омлет © (2011-10-27 15:45) [6]> Медвежонок Пятачок © (27.10.11 15:41) [3]
И что? В каждой таблице есть id, никто не плачет.
← →
Медвежонок Пятачок © (2011-10-27 15:47) [7]у меня нет id ни в одной таблице. и тоже никто не плачет.
← →
Медвежонок Пятачок © (2011-10-27 15:48) [8]никто не плачет.
им просто некогда плакать.
они заняты сочинением имен алиасов во время написания запросов на объединения таких таблиц.
← →
Омлет © (2011-10-27 16:01) [9]> Медвежонок Пятачок © (27.10.11 15:47) [7]
> и тоже никто не плачет.
Им просто некогда плакать.
Они пытаются вспомнить, из каких таблиц все эти поля без указанных алиасов.
← →
Медвежонок Пятачок © (2011-10-27 16:07) [10]Им не надо вспоминать, так как в имени поля стоит префикс напоминающий к какой таблице поле принадлежит
← →
Anatoly Podgoretsky © (2011-10-27 16:10) [11]> Бездомный (27.10.2011 15:37:00) [0]
А что больше нравится?
← →
Anatoly Podgoretsky © (2011-10-27 16:10) [12]> Медвежонок Пятачок (27.10.2011 15:41:03) [3]
Про псевдонимы слышал?
← →
Медвежонок Пятачок © (2011-10-27 16:14) [13]не, не слышал, но видел в кино. давно правда.
← →
Inovet © (2011-10-27 16:17) [14]> [13] Медвежонок Пятачок © (27.10.11 16:14)
> не, не слышал, но видел в кино. давно правда.
В уино было про чужих.
← →
Компромисс (2011-10-27 18:58) [15]Третий вариант хуже первого, так как первый вариант может полностью заменить третий, но не наоборот. Замена осуществляется путем замены первого символа "_" в каждом слове на ".".
То есть вместоselect user_id, category_name
from user,
category,
where user_category_id = category_id
путем замены получаемselect user.id, category.name
from user,
category,
where user.category_id = category.id
Первый вариант лучше, потому что он позволяет избегать ненужных префиксов таблицы к запросам к одной таблицы.
То естьselect id,
name
from user
лучше, чемselect user_id,
user_name
from user
← →
Jeer © (2011-10-27 19:58) [16]Практически всегда третий вариант.
СУБД бывают разные, слегка разнятся диалекты, а третий вариант работает всегда.
← →
Kerk © (2011-10-27 20:40) [17]3 удобнее
← →
Sergey Masloff (2011-10-27 20:41) [18]
> Поля с именами типа user_id я использую для вторичных ключей,
> чтобы было ясно, в какой таблице лежит первичный.
Так вообще большинство делает имхо правильно
← →
Компромисс (2011-10-28 10:12) [19]Jeer © (27.10.11 19:58) [16]
Kerk © (27.10.11 20:40) [17]
как вы таблицы называете?
Если user_accounts и users, то у вас вполне могут быть поля
user_accounts_id и users_account_id.
Как вы определяете, в какой таблице находится поле с 3+ подчеркиваниями?
Например, user_type_account_name? Только по смыслу?
Если вы вместо подчеркивания используете camelcasing типа userAccounts, то не все СУБД поддерживают это.
← →
DiamondShark © (2011-10-28 21:33) [20]Удалено модератором
← →
DiamondShark © (2011-10-28 21:40) [21]Удалено модератором
← →
Компромисс (2011-10-28 21:44) [22]Удалено модератором
← →
Mystic © (2011-10-28 23:11) [23]В MySQL предпочитаю второй из-за USING, в остальных первый
← →
PEAKTOP © (2011-10-28 23:44) [24]а у вас тут весело, гы-гы =)
все эта хрень с правилами называния доменов (или полей) в таблицах баз данных заканчивается тогда, когда разрабатывается более-менее вменяемый движок ERP (или щаз появилось новомодное слово Framework), который позволяет создавать справочники-журналы-документы автоматизированно "на лету".
Естественно то, что движок обычно генерирует в качестве SQL-скрипта создания объектов базы данных находится за рамками человеческой логики. Например - посмотрите базу от 1С, где все таблицы имеют имена вроде DH0012, DT0835, SC1200, RA0012 и такие же "информативные" имена полей.
холивар ни о чем.
← →
Inovet © (2011-10-28 23:59) [25]> [24] PEAKTOP © (28.10.11 23:44)
Ну дык, в этих Адынэсах к ним напрямую и не обращаются.
← →
Anatoly Podgoretsky © (2011-10-29 09:45) [26]> PEAKTOP (28.10.2011 23:44:24) [24]
Это тебе не о чем, а разработчикам даже как о чем. Логика да не
человеческая, но и не человеку с этим работать.
← →
Сусл_ (2011-10-30 01:24) [27]мое имхо, что в ID надо указаывать сущность.
меня в нашем проекте за 10 лет уже добило, что в таблицах-связах многие-ко-многим есть сущность, а в самих таблицах нет. все время забываю. ну не эргономично, имхо.
← →
Loginov Dmitry © (2011-10-30 23:14) [28]
> Например, таблица пользователей, как лучше:
Когда-то давно пользовался только 3-м вариантом, но после знакомства с SQL все больше отдаю предпочтение 1-му. При написании SQL-запросов, особенно с выборкой из большого числа таблиц, очень напрягает постоянно указывать префиксы, тем более алиасы таблиц также приходится использовать. Префиксы применяю только для FK.
Разумеется, с принятыми в фирме стандартами нужно считаться, они приоритетнее личных предпочтений.
← →
Kerk © (2011-10-30 23:20) [29]
> PEAKTOP © (28.10.11 23:44) [24]
Это индусская специфика. Нормальных программистов не касается.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2012.02.19;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.004 c