|
|
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Как лучше именовать поля PrimaryKey ? Например есть 2 таблицы Car,Detail в них PK соответственно CarID,DetailID или ID_Car,ID_Detail или ID,ID Хотелосьбы услышать аргументированный ответ. С уважением, crOK ICQ 41063556 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 10:01 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Единообразно. Все остальное формально не принципиально. Есть конечно плюсы, типа, возможность написания запросов без алиасов, также если имя начинается на id - значит это ссылка или PK (если по одному полю), как известно, первые 2 символа строки проверяются быстрее, чем 2 последние, но это уже все ерунда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 10:04 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Так, чтобы не только автор системы названий, но и другие участники проекта могли разобраться. Также считаю, что лучше префиксы вроде ID писать сначала - тогда понятнее, что к чему относится. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 10:13 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
а что народ скажет о плюсах минусах 1. ID_Car,ID_Detail 2. ID,ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 10:24 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
"Идентификатор" должен быть говорящим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 10:25 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Лично я использую <имя поля>_id, например delivery_adress_id.Первым всегда идет описание сущности, а лишь потом префикс (я бы даже сказал постфикс), так как сущность все-таки главнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 10:26 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
ShtockЛично я использую <имя поля>_id, например delivery_adress_id.Первым всегда идет описание сущности, а лишь потом префикс (я бы даже сказал постфикс), так как сущность все-таки главнее. А мне кажется, что маска типа delivery_adress_id больше подходит для FK. delivery_adress - имя справочника, id - первичный ключ. Сам для PK всегда использую просто ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 10:30 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
т.е получается лучше использовать для PK - ID для FK - ID_TableName например Car(ID,Name) Detail(ID,Name,ID_Car) т.о. мы получаем быстрочитаемый SQL код ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 10:48 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
crok77@mail.ruт.е получается лучше использовать для PK - ID для FK - ID_TableName например Car(ID,Name) Detail(ID,Name,ID_Car) т.о. мы получаем быстрочитаемый SQL код ? Ну можно и так, но мне больше нравится Car(ID,Name) Detail(ID,Name, Car_ID ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 10:53 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
ShtockЛично я использую <имя поля>_id, например delivery_adress_id.Первым всегда идет описание сущности, а лишь потом префикс (я бы даже сказал постфикс), так как сущность все-таки главнее. Сущность лучше выносить в название таблицы. А идентификатор начинать с префикса id_ Например table Something( id_something something_name ) Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 10:55 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
А чем это лучше ? Аргументируйте пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 11:03 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Таблицу лучше называть по имени сущности - см. аргументы Stock'а Аргументация за идентификатор типа id_something: - Все идентификаторы имеют унифицированный вид - Каждый "говорит" сам за себя - Если идентификатор используется в другой таблице, как foreign key по отношению к таблице, на которую ссылается, то сразу видно что это ссылка (по префиксу). Первый (первые несколько для сложного ключа) идентификатор в таблице всегда primary key, последующие - foreign key. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 11:17 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Va1entin Сущность лучше выносить в название таблицы. А идентификатор начинать с префикса id_ Например table Something( id_something something_name ) Меня например напрягает повторение названия сущности в именах полей. Ведь из названия таблицы уже можно понять к чему поле относится, зачем дублировать? select Something.id_something по моему менее читаемо чем select Something.id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 11:19 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
To KSLcom> Когда будете связывать 5-6 таблиц в запросе и увас будет несколько полей с одинаковыми именами а-ля name,id и т.д., я думаю, что очень захотите продублировать название сущности в имени. Кстати, PD не любит сущностей с одинаковым названием, поэтому у меня как-то на автомате все выходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 11:59 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Присоединюсь к прозвучавшему: Код: plaintext 1. Лично я всегда использую в качестве первичного ключа поле TableName_ID. Какие преимущества я вижу в этом подходе перед другими: 1) Почти во всех связках получается условие a.table_id = b.table_id. Это дефолт, который хорошо виден глазу. Те редкие случаи, когда связка делается другим образом, зрительно выбиваются из этого ряда. Соответственно, минимизируется вероятность пропустить важную мелочь, просматривая чужой селект. 2) Аналогично, редкие случаи, выбивающиеся из общего ряда - например, ссылка в таблице на себя - также хорошо видны. Встречая поле типа table_id_parent - сразу видишь, что это не обычный pk и не обычный fk, а поле с некоторым особым смыслом. Например, в коде Код: plaintext 1. 2. 3. 4. есть все основания предположить, что это две обычных ссылки на таблицы document_master и document_detail соответственно. Видя же код Код: plaintext 1. 2. 3. 4. понятно, что это две ссылки на одну таблицу, и виден смысл, различие между этими ссылками. Да, конечно, в первом случае можно использовать master_id_table и detail_id_table - но такого подхода я никогда не видел. 3) Это обеспечивает читаемый код при использовании алиасов таблиц. Я предпочитаю писать квалификаторы везде, кроме самых простых запросов; в этом случае запрос Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. выглядит удобнее, нежели Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 4) Нужно единообразие. Если выносить ID как префикс, точно так же нужно будет выносить и другие стандартные слова - Name, Date, Count, Qnt.... Лично с моей точки зрения они удобнее и естественнее как постфиксы. Например, если поля таблицы описывают четырех человек, у каждого из которых есть name, у троих - salary, и у двоих - hire_date, порядок полей Код: plaintext 1. 2. 3. 4. 5. представляется мне удобнее, нежели Код: plaintext 1. 2. 3. 4. 5. 6. 7. Подчеркну - это личная точка зрения. Главное - должны быть четкие правила, соблюдаемые везде в проекте. Они должны быть продуманы - так, чтобы не требовалось исключений, и проработаны достаточно, чтобы все участники проекта полностью на автомате читали код и понимали что он значит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 12:04 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Мне очень понравился подход, который я увидел 2 года назад, теперь им и пользуюсь: <кр_название_типа_поля><кр_название_таблицы>_<имя_поля> Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 12:23 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
не буду аггетировать никого за мой подход, но мне он кажется наиболее удачным из всех увиденных, т.к.: 1. Всегда ясно поля кого типа 2. Всегда ясно к какой таблице относится 3. Краткое 4. имя отделенно от типа и названия таблицы - легко читается 5. не дублируются имена таблиц :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 12:27 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
bas1. Всегда ясно поля кого типа Хм. Вы этим часто пользуетесь? Я встречал сторонников венгерской нотации, но таки сохранил убеждение, что тип поля должен быть ясен из его имени (то есть предназначения). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 12:34 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
ShtockTo KSLcom> Когда будете связывать 5-6 таблиц в запросе и увас будет несколько полей с одинаковыми именами а-ля name,id и т.д., я думаю, что очень захотите продублировать название сущности в имени. Кстати, PD не любит сущностей с одинаковым названием, поэтому у меня как-то на автомате все выходит. Абсолютно не возникает никаких проблем, потому как я всегда указываю полное наименования полей в запросах select E1.ID, E2.ID, E3.ID from Entity1 E1 left join Entity2 E2 on E1.ID=E2.ID left join Entity3 E3 on E1.ID=E3.ID и т.д. При проектировании таблиц, придерживаюсь правил как и при описании структур в ЯП. Например: Код: plaintext 1. 2. 3. 4. 5. Не вижу необходимости городить такое: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 12:44 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Любая система лучше ее отсутствия. Моя система довольно хорошо проработана и полностью меня устраиваеит. Таблица называется с учетом имени сущности, но, в силу ограничений некоторых используемых мною СУБД, ограничивается длиной в 8 символов (сочетание латинских букв, знаков подчеркивания и цифр, причем, первый символ - всегда буква). Множественные числа в названиях принципиально не используются (т.е. называю таблицы не "ORDERS", а "ORDER"). Плюс к тому, чаще всего имя таблицы у меня имеет префикс общности (2 буквы или 1 буква и подчеркивание). Например, P_ORDHDR - заголовки заказов на приобретение, S_ORDLIN - строки заказов на продажу, F_USER - пользователи системы (общности, соответственно, "purchase", "sales" и "fundamentals"). PK таблицы суррогатный и построен по одному полю. Его имя равно имя таблицы с добавлением суффикса ID. Например, P_ORDHDRID , S_ORDLINID , F_USERID Внешние ключи именуются точно так же, как и PK, при условии, что это возможно. Иногда это сделать невозможно. Например, таблица ссылается на одну и ту же другую таблицу дважды и более. Или таблица ссылается на саму себя. В случае ссылки на себя, FK, как правило, обзывается просто PARENTID . А случай нескольких ссылок из одной таблицы на другую - исключительный. Тут FK называются, как получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 12:47 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Система ID с моей точки зрения неудобна тем, что при миграции ключа его в любом случае необходимо переименовывать, а во-вторых фрагмент Код: plaintext Код: plaintext KSLcom[quot Shtock]To KSLcom> При проектировании таблиц, придерживаюсь правил как и при описании структур в ЯП. Аналогия не полная, в ЯП не используются алиасы. Но согласен с тем, что и эта система много лучше чем никакой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 13:40 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
ModelRСистема ID с моей точки зрения неудобна тем, что при миграции ключа его в любом случае необходимо переименовывать, а во-вторых фрагмент Код: plaintext Код: plaintext А здесь а.order_id это что такое? Если это PK, то почему тогда для таблицы order такой странный псевдоним - "а". Код: plaintext ModelR Аналогия не полная, в ЯП не используются алиасы. Но согласен с тем, что и эта система много лучше чем никакой. В SQL наличие псевдонимов, как дополнительное удобство при написание запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 14:01 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
KSLcomwhere order.id = :x короче и несёт абсолютно туже информацию Короче только если рассматривать в отрыве от всего остального запроса. Когда этот "order" надо употребить еще тридцать-сорок раз, становится существенно некороче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:16 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
crok77@mail.ru а что народ скажет о плюсах минусах 1. ID_Car,ID_Detail 2. ID,ID Минус варианта 2: ухудшение сематичности и ограничениях в SQL. Семантичность - больше надо усилий, в интепритации данных. Ограничения в SQL- , например, во многих случаях придется отказаться от естественного соединения. Причем - это относится ко всем столбцам - т.е. для разных свойств лучше иметь разные имена атрибутов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 20:22 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Paul Sacks"Идентификатор" должен быть говорящим. Полностью согласен.... ЗЫ: недавно заглянул в инстанс БД для MS SharePoint Portal Services - ряд таблиц с нормальными именами, а ряд с именами - Varchar1,Varchar2,Varchar3 и т.д. - вот так называть не стоит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 22:05 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33061455&tid=1545163]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
431ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 814ms |

| 0 / 0 |
