Вместо того, чтобы делиться своим мнением о стандартах именования, я попытаюсь ответить на ваш вопрос;)
Я думаю, что цель Celko состоит в том, что student_ID в таблице студентов - это запах кода, то естьбудь то, что стиль дизайнера заключается в том, чтобы всегда добавлять столбец идентификатора, возможно, столбец автоинкремента, к каждой таблице, которую они создают в физической модели (даже если в логической модели такого столбца нет) с намерением использовать эти столбцы идентификаторовдля внешних ключей.Другими словами, Челко не хочет, чтобы вы всегда использовали суррогатный ключ, скорее он хочет, чтобы вы использовали естественные ключи там, где это необходимо.
Если вы читаете раздел 1.2.5 (с. 14-15) и соблюдаете его правиладля имен таблиц вы поймете, почему имя таблицы + _ID маловероятно:
, если я не могу найти отраслевой стандарт (имя), я буду искать имя коллектива или класса ... Исключение: используйте имя в единственном числе, если в таблице есть одна-единственная строка.
Так, например, если у вас есть таблица, содержащая данные об учениках, она может называться «Студенты», а не «Студент», но болееВероятно, будет зачисление (или подобное).И таблица, содержащая одну и только одну строку, вряд ли нуждается в столбце _ID.
Я полагаю, что существуют существительные, для которых множественное число такое же, как и единственное число, поэтому, возможно, Sheep_ID является приемлемым (но только при отсутствииКонечно, отраслевой стандарт идентификатора овец!)
Также рассмотрим правило 1.3.2.(p19) Избегайте имен, которые меняются с места на место, например, тот же домен, который указан в таблице учеников как ID, а в других таблицах как student_ID.Вряд ли во всей схеме будет только один элемент с именем _ID!