Правила таблиц, к которым я пришёл за 20 лет  (вторая часть)

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

Пока таблица маленькая, почти любой бардак можно какое-то время компенсировать руками, формулами и костылями. Но когда данных становится больше, таблицы начинают связываться между собой, а над ними работают десятки людей - цена плохой структуры начинает быстро расти.

Поэтому во второй части - уже правила уровнем выше.

§ Центральная сущность определяет границы таблицы Не смешивай в одной таблице свойства разных сущностей.

[Продажи] Дата | Клиент | Товар | Сумма | Комментарий о клиенте 21.12 | Иванов | Кабель | 990 | Звонить после 18:00 24.12 | Иванов | Зарядка | 1490 | Звонить после 18:00

✅ [Продажи] Дата | client_id | Товар | Сумма 21.12 | 101 | Кабель | 990 24.12 | 101 | Зарядка | 1490

[Клиенты] client_id | Клиент | Комментарий 101 | Иванов | Звонить после 18:00

§ У каждого свойства - один источник истины Не храни одно и то же свойство в нескольких местах.

❌ [База товаров] Кабель Voltix | Чёрный Зарядка Nova | Белый

[Заказы] Кабель Voltix | Чёрный | 10 Зарядка Nova | Белый | 5

[Отчёт] Кабель Voltix | Black Зарядка Nova | Белый

✅ [База товаров] Кабель Voltix | Чёрный Зарядка Nova | Белый

[Заказы] Кабель Voltix | 10 Зарядка Nova | 5

§ Не разделяй одинаковые данные на отдельные листы. Если структура и набор полей совпадают, храни данные в одной таблице, а различия выноси в отдельный столбец.

[Речной] Товар | Остаток | Цена

[Лесная] Товар | Остаток | Цена

[Центральный] Товар | Остаток | Цена

✅ Магазин | Товар | Остаток | Цена Речной | Кабель Voltix | 12 | 990 Лесная | Кабель Voltix | 8 | 990 Центральный | Кабель Voltix | 15 | 990

§ Стандартизируй значения Одинаковые сущности, категории и состояния должны обозначаться одинаково.

Город СПб Санкт-Петербург г. Санкт Петербург

Город Санкт-Петербург Санкт-Петербург Санкт-Петербург

Заключение Большинство этих правил придуманы не мной, не вчера и даже не для электронных таблиц. Основы всего этого заложили ещё в 1970-е.

И если их соблюдать, у вас будет радикально меньше проблем, костылей, пожаров и просроков, когда потребуется настраивать ETL и строить адекватное хранилище данных - DWH (Data Warehouse).

Проще изначально правильно организовать данные, чем потом героически разгребать последствия того, что кто-то десять лет назад решил сделать отдельный лист на каждый месяц, покрасить просрочку красным и записать телефон клиента в поле с его ФИО.

Правила таблиц, к которым я пришёл за 20 лет  (вторая часть) | Сетка — социальная сеть от hh.ru