Подтвердить что ты не робот

Существует ли соглашение об именах для MySQL?

Вот как я это делаю:

  1. Имена таблиц в нижнем регистре, подчеркивания используются для разделения слов и в единственном числе (например, foo, foo_bar и т.д.
  2. У меня вообще (не всегда) есть автоинкремент PK. Я использую следующее соглашение: tablename_id (например, foo_id, foo_bar_id и т.д.).
  3. Когда таблица содержит столбец, который является внешним ключом, я просто копирую имя столбца этого ключа из любой таблицы, из которой он получен. Например, скажем, таблица foo_bar имеет FK foo_id (где foo_id - это PK foo).
  4. При определении FK для обеспечения ссылочной целостности я использую следующее: tablename_fk_columnname (например, продолжая пример 3, это будет foo_bar_foo_id). Поскольку это комбинация имени таблицы/имени столбца, она гарантированно будет уникальной в базе данных.
  5. Я упорядочиваю столбцы следующим образом: PKs, FKs, а затем остальные столбцы в алфавитном порядке.

Есть ли лучший, более стандартный способ сделать это?

4b9b3361

Ответ 1

Я бы сказал, что в первую очередь: быть последовательным.

Я считаю, что вы почти там с соглашениями, которые вы указали в своем вопросе. Несколько комментариев:

Точки 1 и 2 хороши, я считаю.

Пункт 3 - к сожалению, это не всегда возможно. Подумайте, как бы вы справились с одной таблицей foo_bar с столбцами foo_id и another_foo_id, которые ссылаются на столбец foo table foo_id. Вы можете подумать, как с этим справиться. Это немного угловой случай, хотя!

Точка 4 - аналогична точке 3. Вы можете ввести число в конце имени внешнего ключа, чтобы иметь более одного столбца ссылок.

Точка 5 - я бы этого избегал. Он немного дает вам и станет головной болью, когда вы хотите добавить или удалить столбцы из таблицы позже.

Некоторые другие моменты:

Соглашения об именах индексов

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

Синтаксис против множественных имен столбцов

Это может быть хорошей идеей для решения сложной проблемы множественного числа против одного в именах столбцов, а также имени вашей таблицы. Этот вопрос часто вызывает большие обсуждения в сообществе БД. Я бы придерживался сингулярных форм для имен таблиц и столбцов. Там. Я это сказал.

Главное здесь, конечно, последовательность!

Ответ 2

Согласованность - это ключ к любому стандарту именования. Пока это логично и последовательно, вы на 99%.

Стандарт сам по себе является личным предпочтением - поэтому, если вам нравится ваш стандарт, а затем запустите его.

Чтобы ответить на ваш вопрос прямо - нет, у MySQL нет предпочтительного соглашения об именах/стандарте, так что кастинг вашего файла в порядке (и ваш кажется логичным).

Ответ 3

В MySQL есть краткое описание их более или менее строгих правил:

https://dev.mysql.com/doc/internals/en/coding-style.html

Наиболее распространенный стиль кодирования для MySQL от Саймона Холиуэлла:

http://www.sqlstyle.guide/

Смотрите также этот вопрос: Существуют ли опубликованные рекомендации по стилю кодирования для SQL?

Ответ 4

К счастью, разработчики PHP не являются "фанатиками для верблюдов", как некоторые сообщества разработчиков, которых я знаю.

Ваши соглашения звучат нормально.

Просто, пока они a) простые, и b) последовательно - я не вижу никаких проблем:)

PS: Лично, я думаю, 5) переполнен...