Блог

Рекомендации к наименованию объектов базы знаний и объектам БД

Рекомендации к наименованию объектов базы знаний платформы Sherp приводятся на примере сущности "Счет" в базе данных Accounting (информационная система «Взаиморасчеты»). Для нее создаются следующие объекты:

 

1. Таблица dbo.Bill  - наименование сущности на английском языке в единственном числе).

 

2. Представление dbo.Bill_List - к наименованию сущности добавилось слово _List).

 

3. Процедуры:

  • dbo.Bill_Insert - добавление)
  • dbo.Bill_Update - редактирование)
  • dbo.Bill_Delete - удаление)
  • dbo.Bill_Modify - добавление и редактирование)

 

4. Далее импортируем представление dbo.Bill_List, как объект БД в Sherp. Т.е. сущность будет формироваться на основе представления.

 

5. Сущность Взаиморасчеты. Счет - к наименованию сущности добавляется наименование информационной системы (ИС). После точки пробел. Если наименование ИС длинное, например, «Оперативный учет имущества», то пишут сокращенно - ОУИ. Счет

 

6. Датаблоки обычно называем также, как называются объекты в базах данных. В начале пишем наименование БД, после точки ставим пробел:

  • Accounting. Bill_List  - основной датаблок
  • Accounting. Bill_Init - датаблок инициализации
  • и т.д.

Если объект базы данных имеет схему, отличную от dbo, то название схемы можно указать после наименования датаблока в скобочках, например: Accounting. Contract_List (share) – датаблок для представления share.Contract_List в базе Accounting.

 

7. Файндер, браузер и вьювер:

  • Accounting. Bill_Finder
  • Accounting. Bill_Browser (Меню браузера: Accounting. Bill_BrowserMenu)
  • Accounting. Bill_Viewer (Главный фрейм: Accounting. Bill_Header, меню: Accounting. Bill_ViewerMenu, общий фрейм: Accounting. Bill_Common)

 

8. Команды пользователя:

  • Взаиморасчеты. Добавить счет
  • Взаиморасчеты. Редактировать счет или Взаиморасчеты. Изменить счет
  • Взаиморасчеты. Удалить счет
  • Взаиморасчеты. Поиск счетов (открыть файндер)
  • Взаиморасчеты. Открыть карточку счета (открыть вьювер)

 

9. Для файндер-браузера для поиска счетов создаются отдельные файндер и браузер, которые называются одинаково: Accounting. Bill_FinderBrowser.

 

10. Браузер-селер: Accounting. Bill_BrowserSeler.

 

11. Селер: Accounting. Bill_Seler.

 

12. Вешаем еще один фрейм на вьювер, который будет показывать информацию по договору. Название такого фрейма будет такое: Accounting. Contract_Frame_Bill. Наименование фрейма состоит из наименования сущности, затем наименование объекта (Frame, Browser, Form и т.д.), дальше идет наименование сущности вьювера. Обратите внимание, что наименование самого объекта является произвольным, но придерживайтесь логичных имен, например: Browser, Form, Frame, Sheduler, Report.

 

Если процедур на редактирование несколько, например, кроме основной dbo.Bill_Update нужно создать отдельную процедуру на редактирование договора счета, то можно её назвать dbo.Bill_ContractUpdate. Команда пользователя будет называться: Взаиморасчеты. Изменить договор счета.

 

Рекомендации к объектам базы данных.

 

1. Не используйте специальные символы: &, #, @

 

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

Пример:

  • Browser_сolumn - неправильно
  • BrowserСolumn - правильно

В процедурах и представлениях допускается символ нижнего подчеркивания, для разделения наименования сущности от действия. Например: dbo.ContractType_Modify, dbo.ContractType_List.

 

3. Не используйте в именах транслитерацию русских слов.

Пример:

  • Usluga - неправильно
  • Service - правильно

 

4. Не смешивайте в имени русские и английские слова.

Пример:

  • UslugaName - неправильно
  • ServiceName - правильно

 

5. Не используйте сокращения. Не пытайтесь сократить длину наименования.

Пример:

  • Fd - неправильно
  • FinishDate - правильно

 

6. Не используйте для обозначения типа объектов префиксы. Это затрудняет чтение, поиск объектов, а также возможные замены типов объектов. Например, представление решили заменить на таблицу (и наоборот).

Пример:

  • Таблица tAbonent, gредставление vAbonent, VIEW_Abonent  - неправильно
  • Таблица Abonent, Abonent_List - правильно

 

7. Поле, уникального идентификатора таблицы называйте ID<ИмяТаблицы>. Никогда не называйте просто ID.

Пример:

  • ID - неправильно
  • IDAbonent - правильно

 

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

Пример:

  • ID в таблице Abonent, IDAbonent в таблице AbonentDetail - неправильно
  • IDAbonent в таблице Abonent, IDAbonent в таблице AbonentDetail - правильно

 

9. Называйте хранимые процедуры как <Существительное><Глагол>/<Сущность><Действие>. В этом случае все объекты относящиеся к одной сущности, будут идти подряд в алфавитном списке.

Пример:

  • Abonent_Add
  • Abonent_Delete
  • Abonent_Rename

 

10. Не используйте зарезервированные слова в наименованиях.

Пример:

  • [From] - неправильно
  • AddressFrom - правильно

 

11. Называйте таблицы, выполняющие роль связи M:N между сущностями, как <Сущность1Сущность2>.

Пример:

  • Связь между таблицами User и Role - UserRole

 

12. Не используйте типы FLOAT и REAL для хранения данных с плавающей точкой. Используйте вместо них типы без ошибки округления MONEY, SMALLMONEY и DECIMAL.

 

13. Помещайте поле с первичным ключом в начало описания таблицы.

 

14. Всегда заполняйте Description в поле!

 

15. Устанавливайте SET NOCOUNT ON. При установке OFF после каждого оператора сервер посылает клиенту сообщение DONE_IN_PROC с количеством обработанных записей. Запретив это, вы кардинально сократите сетевой трафик и существенно увеличите производительность.

 

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

 

17. Всегда комментируйте ваш код.

 

18. Зарезервированные слова пишите прописными буквами.

Сравните:

Select a,b,c from browser where idbrowser=1

       и

SELECT a, b, c FROM Browser WHERE IDBrowser = 1

 

19. Разделяйте операторы языка пробелами

Пример:

  • a,b,c,d; a=1 and b=2  - неправильно
  • a, b, c, d; a = 1 and b = 2 - правильно

 

20. Используйте вертикальное выравнивание и отступы

Сравните:

Select a,b,c from browser where idbrowser=1

Update t set a=1,b=2,c=3 where id=2 and name=’qwe’

       и

SELECT

a,

b,

c

FROM Browser

WHERE

IDBrowser = 1

 

UPDATE t SET

a = 1,

b = 2,

c = 3

WHERE

Id = 1 AND

Name = ‘qwe’

 

21. Вставляйте пустые строки в качестве вертикального разделителя.

 

22. Никогда не пишите несколько операторов на одной строке, разделяя точкой с запятой.

 

23. Никогда не пишите * в списке полей команды SELECT. Всегда перечисляйте имена полей.

 

24. В процедурах типа Modify, где используется вставка и удаление данных, используется параметр Action, который принимает значения: 1 – вставка, 2 – изменение. Никогда не используйте процедуру для удаления с параметром Action равным 3. Для удаления записи всегда делайте отдельную процедуру. Сам параметр всегда называйте Action, а тип его – int.

25. Если для актуальности записей в таблице используется столбец IdRecStatus, то используются следующие значения: 0 – запись актуальна, -1 – запись удалена. Тип параметра – int.

 

26. Часто бывает, что нужно создать поля, в которых записывается информация о времени создания, изменения и кто автор изменения. Рекомендуется такие поля называть так: CreateDate (Дата создания), CreateUser (Кто создал), ChangeDate (Дата изменения), ChangeUser (Кто изменил). Для определения текущего времени используйте функцию – GETDATE().

 

27. Для построения представлений (VIEW) никогда не используйте дизайнер, пишите код руками, генерируйте выборки с помощью Management Studio, SqlGen или непосредственно платформы Sherp (тоже может генерировать различный код с помощью SQL редактора). После дизайнера остается нечитабельный ужасный код, который превращает развитие системы другими разработчиками в весьма трудозатратный процесс.


Рекомендации разработчику
Подписаться

Новые статьи

Изменения в разработке пользовательских форм Платформа как инструмент реализации задач индивидуального пользователя Поиск по связанным сущностям Дополнительные настройки Browser'а Новая форма интерфейса - FinderBrowser Новый вид меню пользователя Возможность формирования отчетов с использованием различных источников данных (Федерация данных) Росагролизинг внедрил лизинговый конвейер, автоматизировав процесс рассмотрения заявок на поставку сельхозтехники Возможность аутентификации и авторизации с использованием ADFS Создание значка уведомления (NotifyArea)