Часть 2. Рефакторинг SrokOk: Как я «приручил» базу данных

Продолжаю историю с категориями в SrokOk. Настало время навести порядок.

Что изменилось в архитектуре:

• Нормализация: создал отдельную таблицу CategoryEntity. Теперь у каждой категории свой уникальный ID.

• Foreign Key: в таблице продуктов заменил String на categoryId: Long. Теперь база сама следит, чтобы продукт не ссылался на пустоту.

• Безопасность данных: добавил логику «Без категории». Если категория удаляется, продукты не исчезают, а автоматически перемещаются в системный раздел.

Главный вызов: когда я поменял тип поля в базе, «посыпался» весь проект — мапперы, DAO, UI. Пришлось внедрять JOIN в SQL-запросы, чтобы подтягивать имя категории для экрана.

Рефакторинг — это больно, но это единственный способ превратить пет-проект в профессиональное приложение.

А вы сталкивались с тем, что простое изменение в базе тянуло за собой переписывание полпроекта? 👇

#android #kotlin #room #sqlite #SrokOk #refactoring

Часть 2. Рефакторинг SrokOk: Как я «приручил» базу данных | Сетка — социальная сеть от hh.ru Часть 2. Рефакторинг SrokOk: Как я «приручил» базу данных | Сетка — социальная сеть от hh.ru