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
.