Я хотел бы создать простой проект с использованием spring для управления статусом некоторых клиентов в различных средах. Таким образом, у клиента может быть две среды (dev и prod), а в другой может быть одна, две или три.
Основная идея заключается в том, что я хотел бы создать веб-сервис с использованием Spring со следующим интерфейсом:
localhost:8080/customer1/environment1/status
для извлечения данных о состоянии из customer1 и environment1 .
У меня есть два варианта:
Использование MongoDB с базой данных для каждого клиента, коллекцией для каждой среды и внутри документов статуса. Я обнаружил следующие проблемы:
Я нашел много решений в сети, это было для предыдущих версий Spring (я использую Spring 5)
Кроме того, я не уверен, как я могу реализовать динамические коллекции (я имею в виду, если я сделаю запрос к localhost:8080/customer2/environment2/status
, я бы хотел не только изменить базу данных, но и динамически коллекцию)
Использование Postgres , использование схемы для каждого клиента и таблицы для среды (все таблицы будут иметь одинаковую структуру)
- Проблема в том, что имя таблицы может быть разным (производство, разработка, тестирование и т. Д.), Поэтому мне нужно реализовать динамическое имя таблицы в Spring (что я не уверен, если это возможно)
Я пару дней искал простое решение для этого (которое изначально я думал, что это будет легко, но, похоже, это не так просто)
Как вы думаете, что будет лучшим и более простым решением: MongoDB или Postgres ?
Можете ли вы предоставить базовые шаги по его воспроизведению или предоставить хранилищу Github код, который я мог бы использовать в качестве справочного?
PS: Нет необходимости быть особо безопасным, поскольку это будет внутренняя служба, поэтому не имеет значения расположение данных клиента: может быть в одной и той же базе данных или в разных базах данных