Префикс имен таблиц базы данных - PullRequest
3 голосов
/ 30 июля 2009

Я заметил, что многие компании используют префикс для своих таблиц базы данных. Например. таблицы будут называться MS_Order, MS_User и т. д. Есть ли веская причина для этого?

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

Ответы [ 9 ]

3 голосов
/ 30 июля 2009

Лично я не вижу в этом никакой ценности. На самом деле, это облом для интеллигентных функций, потому что все начинается с MS_. :) Мастер тоже согласен со мной .

2 голосов
/ 30 июля 2009

Огромные схемы часто имеют много таблиц с похожими, но разными целями. Таким образом, различные «сегментированные» соглашения об именах.

Черт, не получил первый пост: -)

1 голос
/ 30 июля 2009

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

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

1 голос
/ 30 июля 2009

В SQL Server 2005 и выше функция схемы исключает необходимость использования префиксов любого типа. Хороший пример их использования можно найти, прочитав о Схемах в AdventureWorks .

В некоторых более старых версиях SQL-сервера наличие префикса для создания псевдо-пространства имен может быть полезно для БД с большим количеством таблиц.

Кроме этого, я не вижу смысла.

1 голос
/ 30 июля 2009

Даже если база данных содержит только одно приложение, префиксы могут быть полезны при группировании похожих частей приложения. Таким образом, таблицы, содержащие информацию о клиентах, могут иметь префикс cust_, таблицы, содержащие информацию о хранилище, могут начинаться с inv_ (для инвентаря), таблицы, содержащие финансовую информацию, могут иметь префикс fin_ и т. Д.

0 голосов
/ 30 июля 2009

Чаще всего используется, если несколько приложений используют одну базу данных. Например, если вы устанавливаете Wordpress, он ставит перед всеми таблицами префикс "wp_". Это хорошо, если вы хотите, чтобы ваши приложения очень легко обменивались данными (например, сеансы для всех приложений в вашей компании).

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

0 голосов
/ 30 июля 2009

Префиксы - это хороший способ выяснить, какие объекты sql связаны с каким приложением, когда несколько приложений попадают в одну базу данных.

Я также по-разному префиксировал объекты sql в одном и том же приложении, чтобы упростить управление безопасностью. то есть все объекты с admin_ нуждаются в применении этой защиты, а остальным нужно что-то еще.

Префиксы могут пригодиться людям, поисковым инструментам и скриптам. Однако, если ситуация проста, то, вероятно, в них нет никакой пользы.

0 голосов
/ 30 июля 2009

Несколько приложений, использующих определенную таблицу, правильно.Префиксы предотвращают конфликт имен.Кроме того, это упрощает резервное копирование таблиц и их хранение в одной базе данных, просто измените префикс, и резервная копия будет полностью функциональной и т. Д. Кроме того, это просто хорошая практика.

0 голосов
/ 30 июля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...