Должны ли мои таблицы базы данных иметь префикс? - PullRequest
2 голосов
/ 11 марта 2011

Быстрый вопрос: у меня есть следующие таблицы в базе данных под названием «galaxy» - где galaxy - название моего веб-приложения.

Таблицы:

  • galaxy_user
  • galaxy_user_profile
  • galaxy_user_subscription
  • galaxy_subscription_type

Необходимо или целесообразно включать префикс 'galaxy' во все таблицы?Или лучше просто назвать их «user», «user_profile», «user_subscription», если да, то почему?

Спасибо!

Ответы [ 4 ]

4 голосов
/ 11 марта 2011

Префиксы используются, если вы ограничены только одной базой данных.Однако в обычных случаях это не так, поэтому префиксы не нужны.Некоторые основные веб-фреймворки, такие как Django, даже не имеют этой функции (однако они могут использовать указанное имя для таблицы).

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

4 голосов
/ 11 марта 2011

Префиксы таблиц базы данных могут быть полезны, если вам нужно несколько приложений для совместной работы в одной базе данных. Он не позволяет различным приложениям пытаться создать / использовать одно и то же имя (у многих приложений есть таблица с именем user, и это может привести к конфликту, если они совместно используют одну и ту же базу данных)

Если вы не планируете иметь несколько приложений, совместно использующих одну и ту же базу данных, то, вероятно, не стоит использовать префикс, так как это просто заставит вас больше печатать!

Martin

3 голосов
/ 11 марта 2011

Если вы собираетесь использовать один и тот же префикс для всех таблиц в базе данных, то он бесполезен. Это полезно, если у вас есть отдельные префиксы для таблиц с разными целями.

1 голос
/ 11 марта 2011

С MySQL (и, возможно, с другими СУБД?) Вы можете выполнять запросы к нескольким схемам баз данных .

Пример:

  • Схема sales:Табличный продукт
  • Схема common: таблица человек, страна

Пример запроса:

SELECT *
FROM sales.product prod
  LEFT JOIN common.person pers ON prod.customer_person_id = pers.id
  LEFT JOIN common.country c ON pers.country_id = c.id
  etc.

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

Кроме того, когда вам нужно выполнять запрос по одной схеме, вам не нужно добавлять префиксы к таблицам при условии, что вы выбралиэта схема с USE myschema или mysql_select_db(), если вы используете PHP.

...