Существует ли соглашение об именовании для MySQL?
вот как я делаю это:
- имена таблиц строчные, используют подчеркивания для разделения слов и являются единственными (например, "foo", "foo_bar" и т. д.
- у меня вообще (не всегда) есть автоматическое приращение PK. Я использую следующее соглашение: tablename_id (например, 'foo_id', 'foo_bar_id' и т. д.).
- когда таблица содержит столбец, который является внешним ключом, я просто копирую имя столбца этого ключа из любой таблицы, из которой он пришел. Например, скажем, таблица 'foo_bar' имеет FK ' foo_id '(где 'foo_id' - это ПК 'foo').
- при определении FKs для обеспечения ссылочной целостности я использую следующее: tablename_fk_columnname (например, в Примере 3 это будет 'foo_bar_foo_id'). Поскольку это комбинация имени таблицы и имени столбца, она гарантированно будет уникальной в базе данных.
- я упорядочиваю столбцы следующим образом: PKs, FKs, затем остальные столбцы в алфавитном порядке
есть ли лучший, более стандартный способ сделать это?
4 ответов:
Я бы сказал, что в первую очередь: будьте последовательны.
Я думаю, что вы почти там с конвенциями, которые вы изложили в своем вопросе. Несколько комментариев, хотя:
пункты 1 и 2 хороши, я считаю.
Точка 3 - к сожалению, это не всегда возможно. Подумайте о том, как бы вы справились с одной таблицей
foo_barстолбцыfoo_idиanother_foo_idобе ссылкиfooтаблица Именования Условностивозможно, вы захотите ввести соглашение об именах для индексов-это будет отличным подспорьем для любой работы с метаданными базы данных, которую вы, возможно, захотите выполнить. Например, вы можете просто вызвать индекс
foo_bar_idx1илиfoo_idx1- полностью зависит от вас, но стоит задуматься.имена столбцов в единственном и множественном числе
это может быть хорошей идеей, чтобы решить сложную проблему множественного числа против одного в именах столбцов, а также ваш имя(ы) таблицы. Этот предмет часто вызывает большой дискуссии в сообществе БД. Я бы придерживался особых форм как для имен таблиц, так и для столбцов. Там. Я уже говорил.
главное здесь конечно последовательность!
согласованность является ключом к любому стандарту именования. Пока это логично и последовательно, вы на 99% там.
сам стандарт является очень личным предпочтением - так что если вам нравится ваш стандарт, а затем работать с ним.
чтобы ответить на ваш вопрос прямо - нет, MySQL не имеет предпочтительного соглашения/стандарта именования, поэтому прокатка вашего собственного прекрасна (и ваш кажется логичным).
MySQL имеет краткое описание их более или менее строгих правил:
https://dev.mysql.com/doc/internals/en/coding-style.html
наиболее распространенный codingstyle for MySQL от Simon Holywell:
http://www.sqlstyle.руководство/
см. Также этот вопрос: существуют ли какие-либо опубликованные рекомендации по стилю кодирования для SQL?
к счастью, разработчики PHP не являются "фанатиками верблюда", как некоторые сообщества разработчиков, которых я знаю.
ваши условности, все нормально.
просто пока они а) просты, и Б) последовательны - я не вижу никаких проблем:)
PS: Лично я думаю, что 5) это перебор...
Comments