Найти тему
Дед Мазай на Котлине

Качество кода ч.9

Части 1, 2, 3, 4, 5, 6, 7, 8

24. В базе данных и в коде нельзя толковать null как самостоятельное значение

Его нужно толковать как "мы не знаем что это, оно может быть чем угодно".

Использовать null в другом качестве (понимать под ним какое-то определённое значение или число, думать, что null больше или меньше каких-то не null значений) недопустимо.

Если нужно, чтобы вместо "мы не знаем, что это" было какое-то значение, то вместо null нужно присваивать переменной какое-то осмысленное значение.

25. Ошибки аналитиков при описании таблиц PostgreSQL, которые НЕЛЬЗЯ реализовывать в коде:

- тип данных decimal - вместо него необходимо использовать тип данных numeric с указанием размерности и точности,

- неправильный тип id - все id во всех таблицах должны быть типом bigserial,

- неправильный тип внешнего ключа - ссылка на id в другой таблице - с типом bigint.
Пример плохого: material_id
int.
Пример хорошего: material_id bigint,

- неправильное имя колонки - если колонка хранит текстовое значение, то она не должна в назывании иметь суффикс '_id'.
Пример плохого названия: material_id varchar.
Пример хорошего: materail_code text,

- неправильное имя колонки - названия колонок в таблицах должны отличаться от названий таблиц.
Пример плохого: таблица workplace и в ней колонка workplace.
Пример хорошего: таблица workplace и в ней колонки: number, code, <другое имя, не содержащее слово workplace>,

- неправильные связи между таблицами - неправильно хранить в колонке значение, которое есть в другой таблице.
Пример плохой таблицы: в таблице entity сделать колонку materail_code text, значение которой должно соответствовать значению code из таблицы material.
Пример хорошей таблицы: в таблице entity сделать колонку materail_id bigint, ссылающуюся на колонку id в таблице material,

-  неправильные связи между таблицами - связи между таблицами должны быть исключительно по id и ни по каким другим колонкам.