Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.02.19;
Скачать: CL | DM;

Вниз

Как лучше называть ключевое (и не только) поля таблиц?   Найти похожие ветки 

 
Бездомный   (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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.011 c
15-1319715427
Бездомный
2011-10-27 15:37
2012.02.19
Как лучше называть ключевое (и не только) поля таблиц?


2-1320826326
I_D
2011-11-09 12:12
2012.02.19
Перевод проекта с Delphi 7 в Delphi XE. Проблема с ShortString


2-1320748521
bam
2011-11-08 13:35
2012.02.19
Файл уже открыт 107


9-1190241696
3DMax
2007-09-20 02:41
2012.02.19
Вопрос по кривым Безье


9-1191695293
Galiaf
2007-10-06 22:28
2012.02.19
Мерцание полигонов.