@Pavel19900505

С чего начать проектирование базы данных имея только макет?

Нашел в интернете макет приложения. Хочу спроектировать базу данных для него. Чтобы потом бекенд часть сделать.

Технологии выбрал: Node.js / PostgreSQL. (это не важно).

Меня интересует не техническая часть, о том как запросы писать или PostgreSQL настроить, а скорее теория о том какие шаги делать и как общую задачу "Спроектировать базу данных" разделить на мелкие задачи. Чтобы потом на Node.js стучатся к базе и брать оттуда данные.

Сейчас совсем не понимаю с чего начать, нужно ли сначала спроектировать базу, а потом уже бекендом заняться, или все же вместе с беком все делать?

Поделитесь опытом, как в принципе вы бы решили задачу.
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
Кмк, лучше не с базы начинать, а с проектирования предметной области:
Какие есть сущности, какие у этих сущностей есть атрибуты, какие есть операции и что эти операции должны задевать.
После этого будет уже понятнее, как проектировать бд
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Сейчас совсем не понимаю с чего начать, нужно ли сначала спроектировать базу, а потом уже бекендом заняться, или все же вместе с беком все делать?

Из практики я не встречал в жизни такой задачи где-бы проектирование было с нуля и до конца.
Бизнес меняется. Постоянно появляются новые услуги. И под них растет база. Я-бы на твоём месте
не стал-бы упарываться вопросом именно проектирования базы. Я-бы доверился итеративному
процессу наподобие scrum-agile. Делаешь первую версию БД. Показываешь демо. Потом снова
итерации. Я надеюсь с командой alter table ты знаком? Ну и прекрасно. Значить в любую
табличку можешь внести изменения. Табличка это не железо-бетон. Если надо - пределай.

Если ты нашел в интернете нечто и хочешь под него что-то спроектировать в БД - тогда
экспертом по бизнесу являешся ты. И ты должен сам себе задать вопросы. Какие данные
будут лежать? Ключи и атрибуты.? Как они связаны.? Тут появляются связи один-ко-много или много-ко-много.
Это концептуальный уровнь. И на физическом уровне могут появится индексы. Партишены.

Если ты не знаешь какие сущности там будут лежать - то пойди от бизнес-кейсов. Например кейс.
Человек хочет сделать заказ. Или еще другой кейс. Человек пришел оплатить заказ.
Оплатил. Попользовался неделю. Потом ему что-то не подошло и он потребовал возврат.
Из кейсов сразу появляются сущности. Клиент. Заказ. Склад. Платеж. Фидбек. Flow товара по магазинам
и складам. И так далее.

Если начнешь делать - делай по минималке. Лучше сделать меньше но самодостаточно чем поначинать
тысячу сущностей и бросить их.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы