Документоориентированная или реляционная база данных (для моей задачи)?
Мне необходимо разработать конфигуратор серверных шкафов.
Выбор габаритов, материала, ..., соответствующие размерам двери, полки и т.д.
у каждой сущности, могут быть крепления, метизы и т.д.
Кроме бизнесовой задачи, также известно, что в иногда могут появляться новые типы дверей (со своими особенностями - например, пусть это будет Замок), и нужно будет доработать конфигуратор, чтобы после этапа выбора дверей, можно было указать, какой замок нам нужен для выбранной двери.
Про двери, написал для примера.
Хочется спроектировать все таким образом, чтобы минимизировать трудозатраты при расширении функционала, и не пришлось переделывать базу данных.
Я знаю как это сделать на реляционном БД, но также понимаю, насколько сложно будет расширять функционал, добавлять новые сущности и т.д.
Подумал, что может в этом случае, уместнее будет использоваться документоориентированную бд ? опыта работы с таким типом бд у меня нет. поэтому возникли такие вопросы:
1. подойдет ли такой тип бд для моей задачи ?
2. я читал, что в документоориентированной бд проблематично выделать выборки с джоинами (join).
Правда ли это ? если да, то как быть, если у меня много типов документов, например:
- основание для шкафа
- стены для шкафа
- двери для шкафа
- полки для шкафа
- ...
неужели в этом случае, нужно делать N-запросов к БД и поочередно запрашивать данные из разных типов документов ?
так что для хранения "зоопарка" и поиска по нему mongoDB подходит.
если будут связи с другими таблицами, могут быть проблемы, потому что JOIN-ы сделать непросто.
лучше прикинуть структуру данных со связями и тогда может будет яснее