Назва таблиць у базі даних — одна з тих дрібниць, яка здається незначною доти, доки кодова база не починає зростати. У невеликих проектах можуть легко «зійти з рук» короткі та очевидні назви. Але в довгостроковій перспективі саме вони стають джерелом помилок, складнощів і зайвих трудовитрат.
Розглянемо це на прикладі бази даних bgp, що містить інформацію про IP-адреси. У базі є таблиці:
- asn
- city
- country
- data
- ip
- ipv6
Ці назви є короткими та інтуїтивно зрозумілими. Однак при масштабуванні проекту така простота викликає проблеми при внесенні правок у код.
Проблема коротких імен у реальному проекті
Уявімо, що база даних переноситься на ClickHouse, а в таблиці ip поле ip потрібно перейменувати на cidr, тому що тепер воно буде зберігати не конкретну IP-адресу, а назву мережі із зазначенням маски 185.39.224.0/24.
Щоб внести такі зміни, необхідно знайти всі звернення до таблиці ip в коді. Але у великому проекті слово ip зустрічається буквально всюди: у змінних, логах, коментарях, іменах функцій, запитах, конфігах тощо.
Звичайний пошук за проектом видасть понад 6000 згадок, і більша частина з них не матиме відношення до таблиці. Просте перейменування назви поля призводить до значних витрат часу, оскільки розробнику необхідно вручну аналізувати кожен знайдений фрагмент. Загальні трудовитрати можуть становити кілька тижнів, включаючи подальше виправлення помилок, пов'язаних з пропущеними або неправильно зміненими ділянками коду.
Як префікси в іменах таблиць вирішують проблему
Тепер подивимося на ті ж таблиці, але з використанням префікса, що відображає зв'язок з доменом даних — в даному випадку bgp:
- bgp_asn
- bgp_city
- bgp_country
- bgp_data
- bgp_ip
- bgp_ipv6
З такими іменами пошук за проектом стає однозначним. Запит bgp_ip дасть тільки реальні звернення до таблиці, а не тисячі помилкових збігів. Будь-які зміни в схемі таблиці можна коректно внести в код за годину — без ризику пропустити важливу ділянку.
Висновок
Короткі та красиві імена таблиць зручні тільки в момент створення. У реальних же проектах, де кодова база існує роками, краще використовувати однозначне та передбачуване іменування. Додавання префіксів, що відображають контекст або модуль даних, робить код підтримуваним і суттєво знижує вартість змін у майбутньому.