Соглашения по SQL коду в платформе

В данном документе опишем основные подходы к написанию кода SQL и именованию объектов в рамках платформы Falcon Space

Таблицы и поля

Именование таблиц 

Формат названия таблицы: {подсистема}_{сущность во множественном числе}

Например, ord_carts. 

Если есть связующая таблица для отношения много ко многим, то ставим подчиненный объект во множественном числе, а основной - в единственном, например st_studentCourses (т.е. у студента есть такие-то курсы). 

Именование полей

Каждая таблица имеет первичный ключ id int identity(1,1). 

Внешние ключи именуются как {name}ID, например, productID - внешний ключ на таблицу товаров. 

Для поля не указываем префикс названия таблицы (не нужно писать productName, productPrice и т.д.)

Типовые названия полей 

Даты называем в таком виде created, deleted, updated

Булевы поля желательно с приставкой is - isDisabled, isVisible

Для названия полей используем lowerCamelCase , например, actionPrice. 

Работа с хранимыми процедурами

Именование процедур

Именование типовых процедур платформы - {подсистема}_{код}_{действие}. 

К примеру, для компонента таблицы это crud_pages_getItems (извлечение таблицы pages)

Для формы - fm_newPage_saveItem (сохранение для формы newPage). 

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

Правила оформления кода в процедуре или функции

Пишем if не в одну строку, а также используем begin end и скобки для условия.  Пример 

if(a=200) begin 
    ...
end 

Обязательны отступы при написании SELECT, подзапросов. 

У выходных SELECT обязательно ставить комментарий вида SELECT N для явного указания, что это SELECT является управляющим. 

Именование переменных в процедуре - смысловое, на английском языке, до 20 символов. 

Более подробно про стили кода и частые ошибки по коду - https://falconspace.ru/docs/kak-uluchshit-svoy-kod---zametki-po-revizii-koda

Индексы 

Некластеризованные индексы имеют формат именования ind_{table}_{cols}

Пример: ind_pages_code

Страница-источник на сайте falconspace.ru