Лучше использовать подчеркивание при именовании таблиц, или лучше использовать Camel-регистр?
Пример table_name
или tableName
какой лучше? Существует ли причина использовать также, что это?
Некоторые механизмы баз данных нечувствительны к регистру и действительно преобразуют имена во все строчные буквы на некоторых выходах. Из-за этого я стал использовать символы подчеркивания между словами и использовать все строчные буквы.
Насколько я помню, MySQL уважает регистр, поэтому для вас это не проблема.Но однажды я обгорел от этого, когда мне пришлось перенести базу данных с одного движка на другой - я думаю, что это было с MySQL на Oracle, но я бы не стал на это ругаться - и все наши имена camelCase внезапно превратились в согласованные имена .
Я также поддержу Роба Бука по самому важному пункту - последовательности. И, раз уж мы заговорили об этом, могу ли я сделать косвенный комментарий насчет единообразия имен полей? Сейчас я работаю с системой, в которой я обнаружил, что поле «prodid» в одной таблице на самом деле имеет то же содержимое, что и «style» в другой, а другая система имеет «deliverydate» в одной таблице и «datedelivered» в Другая.
Я полагаю, что многие РСУБД игнорируют регистр, поэтому использование схем именования в верблюжьем регистре может просто не сработать.
Главное, чтобы имена столбцов и таблиц были описательными, независимо от того, какой синтаксис вы выберете. Если они описывают данные, никого не будет волновать, используете ли вы верблюжий регистр, подчеркивание и т. д.
Я говорю, что используйте любое соглашение об именах, которое вы используете в коде, который обращается к нему для высокоуровневых структуры (например, классы).
Например, если вы инкапсулируете данные * в класс с именем UserInfo, таблица также должна называться UserInfo.
* Вы инкапсулируете данные, верно?
Я предпочитаю использовать описательные имена и использовать регистр Паскаля (TableName).
Избегайте сокращений, и если вам все же нужно использовать сокращение, относитесь к нему как к слову (используйте DaylightSavingsTimeInfo или DstInfo вместо DSTInfo).
В названии не может быть единственного правильного ответа, поэтому лучше всего выбрать что-то и оставаться последовательным. Худшее - это смешать множество стандартов.
Все, что я прочитал, указывает на то, что лучшим соглашением является использование строчных букв как для имен баз данных, так и для имен таблиц. Если вам нужно объединить несколько слов, разделите их подчеркиванием - избегайте дефисов в именах таблиц, иначе вам придется ставить галочки во всех именах таблиц и имен баз данных каждый раз, когда вы на них ссылаетесь.
Кроме того, следующий параметр конфигурации, вероятно, имеет отношение к тому, что вы спрашиваете:
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)
Что касается имен полей, я обычно использую верблюжий регистр.
Вместо того, чтобы дать вам краткую обратную связь по нескольким причинам для этого, я предоставлю ссылку на рекомендации Пинала Дейва по кодированию SQL. Они были хорошо продуманы, объяснены и, кажется, следуют моим собственным предпочтениям в отношении того, как следует называть и использовать вещи и т. Д.
Я считаю, что вам следует делать все, что кажется вам естественным, если лучшее в мире соглашение об именах (для человека, который его написал) не будет казаться естественным, и вам придется каждый раз читать этот документ. разработка базы данных, чем это плохо.
Делайте то, что вам удобно и что лучше всего вытекает из вашей клавиатуры.
По моему опыту, я некоторое время назад перешел на ROR из .net и был пойман на том, как я всегда видел, как люди делают эти вещи, и подчеркивал свои таблицы, но через некоторое время я пренебрегал этой опцией из-за моего старого доброго удобства именования SQL .
то же для столбцов.
Удачи