1. SQL
1.1. Naming
-
Для названий таблиц использовать существительное в единственном числе.
-
Для названий таблиц, которые используют в качестве связующей таблицы для связи Many to Many, использовать шаблон
{first_table_name}_{second_table_name}_link, где{first_table_name}- название главной (с точки зрения моделей) таблицы,{second_table_name}- название второстепенной таблицы. -
Для названий синтетических идентификаторов избегать названия
id. Лучшк использовать шаблон{table_name}_id, где{table_name}- название таблицы содержащей текущий индекс. -
Для названий primary keys использовать шаблон
pk_{table_name}, где{table_name}- название таблицы содержащей текущий primary key. -
Для названий foreign keys использовать шаблон
fk_{table_name}, где{table_name}- название таблицы содержащей текущий foreign key.
1.2. Approach
-
Использовать
UPPER CASEдля SQL синтаксиса. -
Использовать
lower_caseдля собственных названий.
CREATE TABLE IF NOT EXISTS role
(
role_id VARCHAR(255) NOT NULL,
name VARCHAR(255)
);
-
Добавление
PRIMARY KEYдля текущей таблицы осуществлять как отдельныйCONSTRAINT. Добавление осуществлять с помощью оператораCREATE TABLE, но неALTER TABLE.
CREATE TABLE IF NOT EXISTS user_role_link
(
user_id VARCHAR(255) NOT NULL,
role_id VARCHAR(255) NOT NULL,
CONSTRAINT pk_user_role_link PRIMARY KEY (user_id, role_id)
);
-
Добавление
FOREIGN KEYдля текущей таблицы осуществлять как отдельныйCONSTRAINT. Добавление осуществлять с помощью оператораCREATE TABLE, но неALTER TABLE.
CREATE TABLE IF NOT EXISTS user_role__link
(
user_id VARCHAR(255) NOT NULL,
role_id VARCHAR(255) NOT NULL,
CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES "user"(user_id)
);
-
При создании таблиц использовать оператор
IF NOT EXISTS. -
При удаление таблиц использовать оператор
IF EXISTS.