ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
От: kramer
22. октября 2012 01:42

В этом посте я напишу о стандарте именования таблиц, вьюх, хранимых процедур и функций. Возможно позже я напишу посты о том как реализовать некоторые общеупотребительные конструкции в БД и это описание поможет в них разобраться. Сразу проясню некоторые понятия, которые там используются. Префиксы (tbl) нужны для того, чтобы в коде TSQL или LINQ запросов (использующих какой-нибудь ОРМ) было хорошо видно, с чем вы в данный момент работаете. Группа данных - это набор таблиц, относящийся к одной подсистеме во всем проекте, с точки зрения бизнеса, а не реализации. Причем эта подсистема/данные имеют некую смысловую и реализационную автономность, и могут быть использованы в других проектах. Например, Vehicle, Person, Contacts, Documents. Одни группы данных могут использоваться другими, мене переносимыми, и как правило это происходит уже на уровне БЛ. Так что на уровне БД они лежат относительно автономно все на одном уровне. То есть на уровне БЛ это дерево подсистем, на уровне данных это группы данных с соответствующими вьюхами, хранимками и функциями. Если пытаться объединять их на уровне данных, то получатся неподъемные вьюхи и запросы, что вредно скажется на производительности.


ФОРМАТ НАЗВАНИЯ ТАБЛИЦЫ: tbl, Имя Группы Данных, ТИП, Имя сущности
ТИП обозначает тип таблицы или сущности, которая в ней находится. ТИПы могут быть следующими:

BOB - бизнес объект, относится к предметной области, например: кошелек, адрес доставки, акция, покупатель, продавец и т.п. Такие объекты обычно описаны в ТЗ.

BOP - бизнес операция, относится к предметной области, например: продажа, доставка, активация и т.п. Такие операции обычно описаны в ТЗ.

TOB - вспомогательный/системный объект не относится к предметной области, например: файл, ссылка, картинка.

TOP - вспомогательная/системная операция не относится к предметной области, например: обновление данный из внешней системы, запуск операции самовосстановления, запуск внешней задачи в ОС.

POF - часть чего -либо бизнес объекта, бизнес операции, вспомогательного объекта или вспом. операции. Обычно выделяется отдельно для экономии места (например, если эти поля есть только в 5% бизнес объектов) или для удобства восприятия/редактирования (например, при использовании кодогенерации). В случае если эти объекты используются в высоко нагружающих сложных запросах, то при большом их количестве (много JOIN-ов) это может приводить к потерям производительности. В таком случае их поля переносят в основные объекты, а таблицы такие удаляют. Такая система будет более производительна, но ее сложнее поддерживать.

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

M2M - связь многие ко многим между двумя таблицами

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

Например: tblVehicleDICColor, tblKladrTOBRegion, tblCardBOPOperation, tblCardBOBCard


ФОРМАТ НАЗВАНИЯ ВЬЮХИ: vw потом перечисление имен связанных сущностей. Указывать типы сущностей или группы данных нет смысла, так как вьюхи при определенных условиях могут проходить сквозь границы групп данных. В любом случае первым названием сущности должно быть название корневой сущности для вьюхи.

Например: vwCountryRegion, vwCountryRegionSettlement, vwCountryRegionSettlementStreet


ФОРМАТ НАЗВАНИЯ ХРАНИМОЙ ПРОЦЕДУРЫ/ФУНКЦИИ: формат зависит от количества процедур/функций в системе. Если их немного, то достаточно префикса (prc/fun) и названия описывающего, что процедура делает. Но если их больше 20-30-ти, то лучше после префикса (передназванием) указывать имя группы данных/подсистемы.


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

Похожие записи


Вопросы на собеседовании C#, Net, ASP.NET, SQL
Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 2...

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

Темы собеседования на должность ASP.NET разработчика
В продолжение темы вопросов на собеседовании. Нашел в интернете еще один представительный список с вменяемыми ответами. Хотя, конечно, на полноту ответы не претендуют. Оригинал лежит здесь . Перенес его сюда как есть не внося никаких изменений. Что такое полиморфизм, инкапсуляция, наследование. ООППолиморфизм: Язык программирования поддерживает полиморфизм, ес...

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий