Каким стандартом мне следует следовать при названии таблиц и видов?

dba.stackexchange https://dba.stackexchange.com/questions/1637

Вопрос

Каким стандартом мне следует следовать при названии таблиц и видов? Например, это хорошая идея, чтобы положить что -то вроде TBL_ в начале имен таблиц? Должен ли я назначить таблицы кода/поиска каким -то образом, например, CT_, LUT_ или Codes_? Есть ли другие дела/нет?

Я использую MS SQL Server и имею много баз данных со многими таблицами, так что было бы неплохо иметь что -то, что мы можем использовать в качестве стандарта с некоторым поддерживающим рациональным.

Это было полезно?

Решение

ОК, сначала никогда не ставят TBL перед именем стола. Это таблица, мы уже сейчас это. Это называется венгерским обозначением, и люди перестали делать это 5+ лет назад.

Просто назовите объект на основе того, что он есть. Если таблица содержит данные сотрудника, назовите это «сотрудником». Если он содержит информацию о компьютерах, назовите его «компьютер». Если он отображает компьютеры для сотрудников, называют это «работником -экопетристом» или «Computermployee» (лично мне больше нравится "сотрудники" сотрудники ").

Там нет реального правильного соглашения об использовании (кроме как не использовать венгерские обозначения). До тех пор, пока имена объектов имеют смысл, что это важно.

Другие советы

Мы используем схемы (думайте о них как о пространствах имен в SQL), возможно, для разрешений и группировки. Так что вместо «TBL» и т. Д.

  • Data.ting
  • Data.ThingHistory
  • Data.stuff

Ни один код не входит в схему данных. Нет таблиц вне схемы данных. Это может расширить, конечно, иметь схему поиска или постановки, если хотите.

Для просмотров мы используем vw Но это должно было отличить их от таблиц в SQL Server 2000, и сейчас это своего рода наследие

Лично я отличный поклонник Фанё Бедингнг, то есть здесь, что не имя разрешено быть началом другого действительного имени.

А во -вторых, расстояние в химинге между двумя именами лучше, чем одна другая буква.

Да, это правило из -за предварительного времени, но они облегчают жизнь.

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

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

В моем магазине мы придерживаемся следующих правил:

Мы разделяем слова с подчеркиванием и используем все буквы с низким содержанием.
Наши имена таблиц описывают, что они есть: dbo.person, dbo.invoice.
Наши имена таблиц многих ко многим также описывают, что они есть (с добавлением мм Чтобы указать, что многие ко многим отношениям отображаются: dbo.person_mm_address. Наши пользовательские хранимые процедуры описывают как объект, так и выполняемое действие: usp_person_select, usp_address_select_by_city Наши представления и функции следуют тем же правилам, что и сохраненные процедуры. Наши индексы включают в себя таблицу, столбцы ключей (в порядке) и индикацию кластерной/не кластеризированной: ix_person_last_name_first_name_nc

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

Я надеюсь, что этот «без ответа» каким-то образом поможет.

Я доволен этим с много лет назад

  • Названия таблиц: небольшие ограничения и подчеркивание, единственный {клиент, продукт}
  • Имена таблиц для многих по многим отношениям: TableName1_tablename2: {customer_product}
  • Просмотры: небольшие колпачки добавлены V к END {Customerv, ProductV, Product_Groupv}
  • Хранилированные прокачки: имя таблицы и функция {customer_select, customer_insert, customer_delete, customer_update}

Если у вас есть дешевый пакет общего хостинга, вам нужно использовать сокращение проекта перед всеми вашими объектами, например, сайт администраторов базы данных, DA_USERS, DA_QUESTIONS

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top