Соглашения об именах для таблиц и столбцов в базе данных

Возможный дубликат:
Соглашения об именах баз данных, таблиц и столбцов?

Каждый раз, когда запускается новый проект, Im думает о соглашениях об именах таблицы и столбцов в базе данных. В каком случае ваша рекомендация и почему?

Случай 1. column_name
Случай 2. Имя столбца
Случай 3. Column_Name
Случай 4. columnName

Ответ 1

Вы должны использовать случай №1, потому что он не имеет проблем с чувствительностью к регистру. Кроме того, случай верблюда сосет с акронимами.

columnID
columnId
columnIDAlternative
columnIdAlternative
RASCScore
RascScore

column_id
column_id_alternative
rasc_score

Кроме того, пробелы между словами визуально более приятны, чем смешивать все вместе. Абсолютно стоит того, что воспринимается болью при печати подчеркивания. Подчеркивает моделирование пробелов, а сложные существительные и фразы имеют пробелы в нормальном письменном языке. TheOnlyPeopleToTypeLikeThisMayHaveBeenTheRomans.

Ответ 2

Что бы вы ни выбрали, придерживаться того же самого, что важно, то есть быть последовательным.

Я предпочитаю # 2, так как это наиболее читаемо, и, как упоминалось выше, подчеркивание является уродливым и раздражающим для типа. # 4 - второе место. # 3 я, как наименее, как верхний, так и нижний подчеркивает, является излишним.

Ответ 3

Я согласен с № 2 по двум причинам:

  • Подчеркивает боль, чтобы печатать.
  • В свойствах .Net обычно обкладываются таким образом. Это приводит к тому, что все ваши имена совпадают - что удобно и помогает в ситуациях, когда вы используете ORM.

Кстати, я считаю, что разработчики Java склонны использовать # 4 в своих классах. Я бы изменил свой ответ на # 4, если клиентское программное обеспечение находится на Java.

Ответ 4

Я голосую за "Какой бы вы ни использовали в предыдущем проекте". Согласованность в этом случае, вероятно, важнее любой конкретной идеологии...

Ответ 5

Мне нравится случай 2, ценности, похоже, выделяются мне лучше. Независимо от того, что вы выбираете, держите его в курсе!

Ответ 6

Я использую случай 2 (ColumnName) - потому что подчеркивания являются болью типа.

Подчеркивания в порядке имен индексов, триггеров или других объектов, которые не часто набираются. Я оставляю их за пределами таблиц, столбцов, представлений, сохраненных имен proc, так как те имена, которые часто используются и достигают этого подчеркивания, могут замедлить вас, если вы часто используете его.

Ответ 7

Я называю свои таблицы точно такими же, как я называю объекты, которые я собираюсь создать, чтобы их обернуть. Это хорошо работает с современными ORM (объектно-реляционными сопоставителями), поскольку они часто могут создавать объектную модель для вас на основе структуры базы данных (или наоборот). Принятый ответ, кажется, умаляет "боль при наборе подчеркивания", но я отношусь к этому серьезно. Страдая от RSI, особенно в моих pinkys, которые я использую, чтобы удерживать клавиши Shift и Ctrl, я делаю абсолютно все, что могу, чтобы избежать ненужных подчеркиваний. Разумеется, хорошим ответом на этот вопрос является переназначение ключа CapsLock либо клавишей Shift, либо клавишей Underscore. Но в любом случае я добавляю этот ответ к старому вопросу, потому что никто не упоминал о работе с вашим ORM. Поскольку большинство программистов я использую в .NET, большинство моих свойств имеют верблюд, и поэтому я называю свои столбцы db в случае с верблюдом. У меня абсолютно нет проблем с аббревиатурами на верблюжьем корпусе. Поэтому я делаю такие вещи, как:

PersonDao.GetIdByName( "Привет мир" ).

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

Я считаю, что называть абсолютно первостепенную важность. И точно так же, как некоторые люди имеют фетиш XML, у других есть фетиш базы данных. Лично мне нравится использовать мои ORM, чтобы полностью игнорировать мою базу данных (или как можно больше). Чтобы облегчить это, я называю свои столбцы так же, как я называю свойства в коде. Итак, в конечном счете, подчеркивая ненависть в сторону, я использую любые соглашения, существующие для языка, в котором существует мой код.

Ответ 8

Мне просто нравится camelCasing (4) отличная читаемость, без подчеркивания