powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше именовать поля PrimaryKey ?
8 сообщений из 58, страница 3 из 3
Как лучше именовать поля PrimaryKey ?
    #33812100
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iamhereЧем EMP_ID лучше EMP.ID?
Рисовать легче. Пир создании в CASE-средстве внешнего ключа в дочернюю таблицу мигрирует поле с "правильным" именем.
...
Рейтинг: 0 / 0
Как лучше именовать поля PrimaryKey ?
    #33812355
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iamhereЕсли "просто ID" - плохое решение, то и "просто Name" должно быть плохим.
В первую очередь, схема этого рассуждения представляется мне сомнительной.

Во вторую очередь, "просто Name" - я лично не использую.

iamhereИ тогда что - все поля предварять префиксом???
Всем полям давать осмысленные и достаточно различимые имена. В том числе в этом может помочь префикс.

iamhereПросто надо взять за правило - как только в запросе есть две (и более) таблицы - сразу для всех вводим одно-двухбуквенные алиасы
Это правильно, но в случае ID не слишком помогает по причинам, указанным Денисом. Плюс, действует еще то соображение, что когда одно-двухбуквенных алиасов оказывается пятнадцать-двадцать-сорок штук, более различимые поля помогают читать запрос.
...
Рейтинг: 0 / 0
Как лучше именовать поля PrimaryKey ?
    #33813334
cg_roma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iamhere
Если "просто ID" - плохое решение, то и "просто Name" должно быть плохим. Потому что тоже во многих таблицах такое поле есть и называется одинаково :)

И тогда что - все поля предварять префиксом???
...
Или что - некоторые поля предварть префиксом, а некоторые - нет? Это просто бардак будет.
...


По-моему хорошо аргументированно. Кто против "PK - всегда ID", можете конкретно ответить на каждый заданный вопрос в этом высказывании?

1. Если "просто ID" - плохое решение, то и "просто Name" должно быть плохим. Потому что тоже во многих таблицах такое поле есть и называется одинаково :)

И тогда что - все поля предварять префиксом???

2. Или что - некоторые поля предварть префиксом, а некоторые - нет?

3. Просто надо взять за правило - как только в запросе есть две (и более) таблицы - сразу для всех вводим одно-двухбуквенные алиасы и на ВСЕ поля ссылаемся только с алиасом. Читается и пишется отлично, ничего не спутаешь, и вообще все замечательно.

Кто-то против такого правила?

4. Чем EMP_ID лучше EMP.ID?
...
Рейтинг: 0 / 0
Как лучше именовать поля PrimaryKey ?
    #33813344
cg_roma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer iamhereЕсли "просто ID" - плохое решение, то и "просто Name" должно быть плохим.
В первую очередь, схема этого рассуждения представляется мне сомнительной.

Уважаемый softwarer, когада-то читал на Вашем сайте об уверенности в своем умении четко следовать логическим рассуждениям, но в данном случае - в чем сомнительность высказывания:

iamhereЕсли "просто ID" - плохое решение, то и "просто Name" должно быть плохим.

Вполне логичный вывод.

Другое дело, что у каждого есть свои эстетические предпочтения и доля здравого смысла - вот корень данной дискуссии. Мне кажется - каждый должен осмыслить услышанное и опредлиться со своими предпочтениями. Одним из главных критериев верности выбора может служить чувство комфорта и "симпатишности", наблюдаемого в процессе работы :)
...
Рейтинг: 0 / 0
Как лучше именовать поля PrimaryKey ?
    #33813349
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на вкус и цвет товарищей нет. Какой внутренний стандарт примите, тот и будет правильным.
...
Рейтинг: 0 / 0
Как лучше именовать поля PrimaryKey ?
    #33813542
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cg_romaУважаемый softwarer, когада-то читал на Вашем сайте об уверенности в своем умении четко следовать логическим рассуждениям,
Любопытно, поскольку не припомню там подобных утверждений. Возможно, Вы имеете в виду параграф про соблюдение темы дискуссии; возможно же - Вы имеете в виду параграф "Логика", где я как раз предостерегаю от того, чем Вы, возможно, занялись - подмены сказанного мной Вашим мнением о том, что же я имел в виду.

cg_romaно в данном случае - в чем сомнительность высказывания:
.....
Вполне логичный вывод.
Хм. Признаться, я почти уверен, что Вы не строили цепочку рассуждений, приводящую к этому выводу, и "вполне логичный" следует читать как "интуитивно кажется мне верным".

Сомнительность же его в том, что его можно оспорить, причем вполне логичным рассуждением. Например, так:

Поле ID используется почти исключительно для решения двух задач: выборки одиночной записи по ключу и связывания данных в запросе.

Поле Name практически никогда не применяется для решения этих задач, зато применяется для решения задач, в которых практически никогда не используется поле ID.

Таким образом, доказано принципиальное различие этих полей, более того - практическое отсутствие общности сверх самого базового уровня (уровня "и то, и другое - поля").

Исходя из этого, нет никаких оснований полагать, что нечто, верное для одного из полей, окажется верным для другого, равно как и наоборот.

Повседневная аналогия такой ситуации - практически любой стандарт говорит об использовании осмысленных идентификаторов, но в то же время практически любой стандарт допускает использование переменных наподобие i, j, ii в роли варианта цикла, хотя это вроде бы противоречивые подходы.

cg_romaДругое дело, что у каждого есть свои эстетические предпочтения и доля здравого смысла - вот корень данной дискуссии. Мне кажется - каждый должен осмыслить услышанное и опредлиться
Безусловно. Именно поэтому я в ходе этой дискуссии минимизировал изложение собственных вкусов и в основном говорил либо о "главное - система, не так важно какая именно", либо об объективных, проверяемых преимуществах/недостатках того или иного подхода.
...
Рейтинг: 0 / 0
Как лучше именовать поля PrimaryKey ?
    #33816774
ABC_1982
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В свое время очень много писал для БД, PK которой были построены по принципу table_name_id. Очень утомительно было писать и отлаживать конструкции наподобие:
Код: plaintext
...table_name.table_name_id = table_name_detail.table_name_id...
Даже введение alias наподобие:
Код: plaintext
tn.table_name_id = tnd.table_name_id
не очень спасает ситуацию когда пишешь действительно много больших по объему и сложных запросов. Гораздо проще написать те же
Код: plaintext
...tn.id = tnd.table_name_id...

особенно если все в команде знают, что tn это общепринятый alias для table_name. Нет разницы между emp_id и emp.id (если нет еще одной таблицы с полем emp_id...), но есть большая разница между, например ii.invoice_item_id и ii.id... А читается так же легко, если ii.id не легче при долгой работе с системой... Особенно учитывая, что полные наименования таблиц таковы, что не всегда условие по join влезает в экран :)...

В общем, когда пришло время проектировать свою БД, пришел к выводу, что обозначение PK просто как ID позволит сохранить много времени при дальнейшей работе.
Хотя все это весьма и весьма субъективно, кому-то вон венгерская нотация нравится... В общем, как во всех учебниках пишут про стиль: главное чтобы был, был один и удобный для Вас в использовании...
...
Рейтинг: 0 / 0
Как лучше именовать поля PrimaryKey ?
    #33831028
Фотография Megabrain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю устроить конференцию в Москве по данному вопросу. А также выпустить книгу "Именование PK - его огромное значение в жизни современого общества".
...
Рейтинг: 0 / 0
8 сообщений из 58, страница 3 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше именовать поля PrimaryKey ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]