|
|
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
SanyL ЗЫ: недавно заглянул в инстанс БД для MS SharePoint Portal Services - ряд таблиц с нормальными именами, а ряд с именами - Varchar1,Varchar2,Varchar3 и т.д. - вот так называть не стоит Как в SharePoint Portal Services не знаю, но в принципе такие имена допустимы для полей, зарезервированных под пользовательские расширения. Их смысл определяется не в словаре СУБД, а в словаре приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2005, 10:09 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
basМне очень понравился подход, который я увидел 2 года назад, теперь им и пользуюсь: <кр_название_типа_поля><кр_название_таблицы>_<имя_поля> Поддерживаю. Тоже использую аналогичный подход, за исключением <кр_название_типа_поля> - никогда не было необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 14:04 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
KSLcomмне больше нравится Car(ID,Name) Detail(ID,Name, Car_ID ) Поддерживаю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 16:25 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
А с какой целью господа используют такую странную МД, в которой приходится заморачиваться с ключами ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 17:51 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
iamhere KSLcomмне больше нравится Car(ID,Name) Detail(ID,Name, Car_ID ) Поддерживаю!+1 Зверь(Код,Имя) Свойства(Код,Имя, Код зверя ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 17:52 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
комментаторА с какой целью господа используют такую странную МД, в которой приходится заморачиваться с ключами ? Здравствуйте, Андрей Леонидович! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 18:07 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Опа ! Достойная цель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2006, 19:45 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Собственно, самое главное уже сказано - "Любая система всегда лучше, чем отсутствие системы". Лично я использую такую нотацию. Все ключевые поля заканчиваю постфиксом _ID , все ссылки на другие таблицы по внешнему ключу заканчиваю постфиксом _DD . Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В запросе мне удобнее если сразу видно, какое поле от первичного ключа, а какое - ссылка: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2006, 03:56 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Евгений_СТВсе ключевые поля заканчиваю постфиксом _ID , все ссылки на другие таблицы по внешнему ключу заканчиваю постфиксом _DD . а что обозначает постфикс DD? а если просто ставить постфиксы PK и FK INVOICE_PK SUPPLIER_FK INVOICE_DATE LINEITEM_PK INVOICE_FK LINEITEM_AMOUNT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2006, 11:58 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
proposed amendmentа если просто ставить постфиксы PK и FK Эти постфиксы имхо естественно оставить для constraint-ов. Впрочем, я вообще не понимаю смысла нотационно разделять PK и FK атрибуты. В связи с этим особенно интересен вопрос - как именовать FK атрибут, являющийся частью PK :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2006, 16:47 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
softwarer proposed amendmentа если просто ставить постфиксы PK и FK Эти постфиксы имхо естественно оставить для constraint-ов. Впрочем, я вообще не понимаю смысла нотационно разделять PK и FK атрибуты. В связи с этим особенно интересен вопрос - как именовать FK атрибут, являющийся частью PK :)) да это я уж так просто - разговор поддержать хватает NAME_ID или ID_NAME но чаще первое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2006, 17:45 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
proposed amendment Евгений_СТВсе ключевые поля заканчиваю постфиксом _ID , все ссылки на другие таблицы по внешнему ключу заканчиваю постфиксом _DD . а что обозначает постфикс DD? Обозначает ссылку на ключевое поле другой таблицы. Буквы _DD взяты "с потолка", просто для того, чтобы отличать от _ID . Можно было бы назвать например _II , но я посчитал, что ДД будет красивее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2006, 23:45 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
KSLcom Ну можно и так, но мне больше нравится Car(ID,Name) Detail(ID,Name,Car_ID) Еще один голос в поддержку данного мнения. В нашей компании, в рамках задачи создания, развития существующей документации, создали, обсудили, утвердили и теперь рекомендуем к использованию соглашения о правилах наименований объектов БД (DatabaseNameRules). Может кому интересно - цитирцю: Правила наименований объектов баз данных Общие Все названия объектов писать в нижнем регистре английскими буквами (в некоторых серверах есть возможность именовать объекты БД кирилицей; на некоторых платформах имена в разных регистрах различаются) Все служебные слова MySQL писать в верхнем регистре английскими буквами для удобного чтения кода скрипта Выбирать англоязычные названия, не транслитерацию. Исключения: абревиатуры и другие подобные общеупотребляемые выражения, облегчающие понимание. Для разделения имени на составляющие используется '_' Сущности (таблицы) Наименования сущностей в единственном числе. По аналогии с Delphi VCL: имя класса - имя таблицы, объект - запись в таблице Атрибуты (поля) В именах атрибутов имя таблицы указывать не нужно, т.к. на атрибуты ссылаемся через имя таблицы. В таком случае дублирование названия таблицы в выражениях customer.customer_surname, customer.customer_passport, customer.customer_address избыточно. Вместо таких избыточных наименований следует использовать customer.surname, customer.passport, customer.address и т.д. Первичный ключ Все сущности имеют суррогатный первичный ключ - поле с последовательно увеличивающимся числовым значением - атрибут id. Называние перивчного ключа одинаково для всех таблиц. Пример: Таблица customer - первичный ключ customer.id Таблица payment - первичный ключ payment.id Внешний ключ По договрености о первичном ключе, в каждой таблице мы имеем атрибут id. Для того, чтобы сослаться на эту таблицу, в дочерней таблице используем внешний ключ вида <имя таблицы>_id. Пример: Допустим, мы хотим из таблицы detail сослаться на таблицу master: используем поле detail.master_id. Принцип еще хорошо иллюстрируется выражением: table.id = table_id Используя такую схему наименования внешних ключей легко определить: - все внешние ключи в таблице - их легко визуально выделить среди обыкновенных атрибутов - по имени ключа сразу видно на какую таблицу он ссылается - при написании запроса достаточно вспомнить, на какую таблицу мы хотим сослаться - дальше действует стандартное правило ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2006, 14:49 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
cg_romaВсе названия объектов писать в нижнем регистре английскими буквами ..... Все служебные слова MySQL писать в верхнем регистре английскими буквами для удобного чтения кода скрипта Аргументация этого пункта, признаться, улыбнула. То есть: ключевую для понимания запроса информацию (названия таблиц, полей итп) следует писать в нижнем регистре, зато выпячиваются FROM, JOIN, AND и прочие очень важные для понимания сути слова. В остальном - как уже говорилось, любая система лучше отсутствия системы. Хотя легко назвать и недостатки - например, эта система обрушится, как только окажется необходимым иметь два foreign key-я между одной и той же парой таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2006, 15:14 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
softwarerАргументация этого пункта, признаться, улыбнула. То есть: ключевую для понимания запроса информацию (названия таблиц, полей итп) следует писать в нижнем регистре, зато выпячиваются FROM, JOIN, AND и прочие очень важные для понимания сути слова. Некоторые лица, учавствующие в обсуждении настояли на этом. Принимался документ сообща :) softwarerВ остальном - как уже говорилось, любая система лучше отсутствия системы. Хотя легко назвать и недостатки - например, эта система обрушится, как только окажется необходимым иметь два foreign key-я между одной и той же парой таблиц. Как раз первоначальной целью документа и являлось создание системы. Когда встанут острые вопросы - вернемся к пересмотру этого документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2006, 15:21 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Добавлю, что лично мне болшье по душе нижний регистр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2006, 15:23 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
cg_romaНекоторые лица, учавствующие в обсуждении настояли на этом. Принимался документ сообща :) Улыбнула именно аргументация. Само соглашение - может быть, и хуже других, но вопросов ровно два: Принципиальное наличие согласованности Удобство для команды в целом (для большинства или нечто в этом духе) cg_romaКогда встанут острые вопросы - вернемся к пересмотру этого документа. Это абсолютно правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2006, 16:10 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Вот еще вариант именования полей и таблиц: 1) Таблица называется маленькими буквами, название отражает содержимое во множественном числе, например: clients, orders 2) Поля таблицы называются маленькими буквами в формате tn[_field_name][_id|_date|...], где tn_ - двух-трех буквенное сокращение названия таблицы, field_name - сущность поля, _id - приставка для обозначения характеристики данных (дата, код и пр.). Например cl_id - PK таблицы clients, ord_issue_date - дата составления заказа из таблицы orders. Удобство такого подхода в том, что небольшими усилиями мы всегда знаем поле какой таблицы используется в запросе, знаем что все поля в базе уникальные, знаем что никогда не наткнемся на зарезервированное слово при задании имени поля, используем как префикс, так и суффикс для информативного представления. Еще психологически легче восстанавливать название поля в последовательности название таблицы - название поля - тип/характеристика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2006, 22:06 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
KSLcomмне больше нравится Car(ID,Name) Detail(ID,Name, Car_ID ) Если вспомнить про NATURAL JOIN, то -1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 10:00 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Dik76Если вспомнить про NATURAL JOIN, то -1 И сколько раз ты про него вспоминал в реальной практике?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 21:23 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
KSLcomА мне кажется, что маска типа delivery_adress_id больше подходит для FK. delivery_adress - имя справочника, id - первичный ключ. Сам для PK всегда использую просто ID. +1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 21:39 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
iamhere Dik76Если вспомнить про NATURAL JOIN, то -1 И сколько раз ты про него вспоминал в реальной практике??Скажем так - хотел бы чтоб он был в FB. Сам использую и в PK и в FK одинаковую запись id_table_name. Кстати NATURAL JOIN как раз и придуман для стимуляции использования одинаковых наименований. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 00:06 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
Dik76Если вспомнить про NATURAL JOIN, то -1 Если вспоминать про natural join, то все, что способстствует отказу от него, имеет аргумент в свою пользу. Что, впрочем, не мешает мне считать "просто ID" плохим решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 10:00 |
|
||
|
Как лучше именовать поля PrimaryKey ?
|
|||
|---|---|---|---|
|
#18+
softwarerЧто, впрочем, не мешает мне считать "просто ID" плохим решением. Если "просто ID" - плохое решение, то и "просто Name" должно быть плохим. Потому что тоже во многих таблицах такое поле есть и называется одинаково :) И тогда что - все поля предварять префиксом??? а) снижается читабельность/писабельность б) мешаются ограничения на размер поля в) вообще лишее. Или что - некоторые поля предварть префиксом, а некоторые - нет? Это просто бардак будет. Просто надо взять за правило - как только в запросе есть две (и более) таблицы - сразу для всех вводим одно-двухбуквенные алиасы и на ВСЕ поля ссылаемся только с алиасом. Читается и пишется отлично, ничего не спутаешь, и вообще все замечательно. Чем EMP_ID лучше EMP.ID? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 16:29 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33805973&tid=1545163]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
382ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 655ms |

| 0 / 0 |
