2010-06-23 2 views
12

Лучше ли использовать подчеркивание во время именования таблиц или лучше использовать камеру?Лучший способ назвать таблицы

Пример table_name или tableName Какой лучше? Есть ли причина использовать то, что это?

+0

Короткий ответ: это зависит от вас, выберите то, что вам нравится. См. Также: http://stackoverflow.com/questions/1847235/database-table-and-column-naming-conventions – Shog9

+0

ahh блестящие парни ... большое спасибо за ссылки .. очень ценятся. – bharath

+0

Большинство реализаций SQL не зависят от случая, поэтому «STUFF», «stuff» и «StUfF» относятся к одной и той же таблице. –

ответ

1

Я говорю, используя любое соглашение об именах, которое вы используете в коде, который обращается к нему для высокоуровневых структур (например, классов).

Например, если вы инкапсулируете данные * в класс UserInfo, таблицу также следует называть UserInfo.

* Вы инкапсулируете данные, не так ли?

+0

ahh, что было приятной частью информации .... Большое спасибо. – bharath

1

Вместо того, чтобы предоставить вам краткую обратную связь по нескольким причинам для этого и я приведу ссылку на рекомендации по кодированию SQL Pinal Dave. Они были хорошо продуманы, разъяснены и, кажется, следуют мои собственные предпочтения о том, как вещи должны быть названы и использоваться т.д.

Enjoy!

+0

спасибо за ссылку brian ... – bharath

+0

Скорее специфичен для SQL Server, но все же хорошая ссылка. –

+1

Не могу сказать, поскольку я согласен со всем этим, хотя. Вы не должны называть хранимые procs, начинающиеся с sp, поскольку SQL-сервер сначала будет искать системный процесс, так что вы потеряете крошечную производительность в каждом вызове. – HLGEM

1

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

Вы должны делать все, что удобно для вас, и что вытекает из вашего ключевого слова лучше.

По моему опыту, я переехал в ROR из .net некоторое время назад и был пойман таким образом, что я всегда видел, как люди делали эти вещи и подчеркивали мои таблицы, но через некоторое время я пренебрег этим вариантом для моего добрых имен SQL-имен удобство.

то же самое для столбцов.

Успехов

+0

Нет, команда должна договориться о стандарте, и каждый должен ее использовать (и обзоры кода должны разорвать Dev, если он не соответствует стандарту). Нет ковбойского кодирования, где каждый использует стандарт, с которым они чувствуют себя наиболее комфортно. И без использования стандартной формы последнее место, где я работал, потому что я чувствую себя комфортно с этим, а не с тем, что эта организация требует бессмыслицы. – HLGEM

+0

@HLGEM, работающий в команде, - это совсем другая опера. при работе в команде или управлении командой обязательно должно быть соглашение, установленное менеджером. – KensoDev

+0

@HLGEM - Мне нужно согласиться с KensoDev. Ваши комментарии, независимо от того, намерены они или нет, чувствуют, что вы хотите, чтобы разработчики с прямыми куртками использовали стандарт кодирования. Стандарты - это не плохо, но мой опыт в том, что они предназначены для борьбы с прошлым годом, а не в этом году. Конечно, есть вещи, которые мы можем извлечь из этого и применить вперед. Но для обеспечения стандарта кодирования для людей, когда правила игры изменились (новый язык, новые проблемы для решения, новые методы кодирования), действительно испортили мне идею стандартов кодирования. Вы часто обновляете свой стандарт? –

3

Все, что я прочитал указывает на лучший конвенция придерживаться строчными как для имен баз данных и имена таблиц. Если вам нужно добавить несколько слов вместе, разделите их на символы подчеркивания - избегайте дефисов в именах таблиц, иначе вам придется возвращать все ваши имена таблиц и имена баз данных каждый раз, когда вы ссылаетесь на них.

Кроме того, следующий параметр конфигурации, вероятно, соответствует тому, что вы спрашиваете:

mysql> show global variables like 'lower%'; 
+------------------------+-------+ 
| Variable_name   | Value | 
+------------------------+-------+ 
| lower_case_file_system | OFF | 
| lower_case_table_names | 0  | 
+------------------------+-------+ 
2 rows in set (0.00 sec) 

Что касается имен полей, я предпочитаю использовать верблюда случае.

+0

Под «именами полей» вы имеете в виду столбцы/строки? –

1

Мое предпочтение заключается в использовании описательных имен и использовании корпуса Pascal (TableName).

Избегайте сокращений, и если вам нужно использовать аббревиатуру, относитесь к нему как к слову (используйте DaylightSavingsTimeInfo или DstInfo вместо DSTInfo).

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

12

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

MySQL уважает дело, поскольку я помню, что это не является непосредственной проблемой для вас. Но я был сожжен на этом один раз, когда мне пришлось переносить базу данных с одного движка на другой - я думаю, что это от MySQL до Oracle, но я бы не поклялся в этом - и все наши имена camelCase внезапно стали именами вместе ,

Я также добавлю Роба Бёка на самую важную вещь, являющуюся консистенцией. И пока мы обсуждаем эту тему, могу ли я сделать тангенциальный комментарий о том, что вы согласуетесь с именами полей? Теперь я работаю с системой, где обнаружил, что поле «prodid» в одной таблице на самом деле представляет собой то же самое содержимое, что и «стиль» в другой, а другая система, которая «доставила» в одной таблице и «датировала» в другой.

2

Я считаю, что многие RDBMSes игнорируют регистр, поэтому использование схем именования верблюдов может просто не работать.

Важно, чтобы имена столбцов и имена таблиц были дескриптивными, независимо от того, какой вы решительный синтаксис nit-picky. Если они описывают их данные, никто не будет заботиться о том, использовали ли вы верблюд, символы подчеркивания и т. Д.

+1

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

+0

HLGEM - Вы можете уточнить, что вы подразумеваете под стандартом? Вы имеете в виду синтаксис (используйте camelcase, используйте символы подчеркивания, всегда иметь верхний регистр SQL) или контент (есть колонки, описывающие их данные, форматирование данных в HH: MM: SS, форматирование)? Я думаю, что накладывать синтаксис на разработчиков на разработчиков, которых нет в базе данных, вредно (программисты IME слишком анально об этом, они только создают религиозные битвы). Но что касается контента, я думаю, что это нормально говорить в стандарте/руководствах. –

+0

Я также добавил бы, что у HLGEM есть точка - необходима некоторая согласованность. Например, столбцы, содержащие общие идентификаторы, должны иметь одно и то же имя в таблицах базы данных в конкретной схеме. Я не сторонник бесплатного для всех здесь. –

Смежные вопросы