Веб-сервис с несколькими арендаторами весной: postgres vs mongodb - PullRequest
0 голосов
/ 21 мая 2019

Я хотел бы создать простой проект с использованием spring для управления статусом некоторых клиентов в различных средах. Таким образом, у клиента может быть две среды (dev и prod), а в другой может быть одна, две или три.

Основная идея заключается в том, что я хотел бы создать веб-сервис с использованием Spring со следующим интерфейсом: localhost:8080/customer1/environment1/status для извлечения данных о состоянии из customer1 и environment1 .

У меня есть два варианта:

  1. Использование MongoDB с базой данных для каждого клиента, коллекцией для каждой среды и внутри документов статуса. Я обнаружил следующие проблемы:

    • Я нашел много решений в сети, это было для предыдущих версий Spring (я использую Spring 5)

    • Кроме того, я не уверен, как я могу реализовать динамические коллекции (я имею в виду, если я сделаю запрос к localhost:8080/customer2/environment2/status, я бы хотел не только изменить базу данных, но и динамически коллекцию)

  2. Использование Postgres , использование схемы для каждого клиента и таблицы для среды (все таблицы будут иметь одинаковую структуру)

    • Проблема в том, что имя таблицы может быть разным (производство, разработка, тестирование и т. Д.), Поэтому мне нужно реализовать динамическое имя таблицы в Spring (что я не уверен, если это возможно)

Я пару дней искал простое решение для этого (которое изначально я думал, что это будет легко, но, похоже, это не так просто)

  • Как вы думаете, что будет лучшим и более простым решением: MongoDB или Postgres ?

  • Можете ли вы предоставить базовые шаги по его воспроизведению или предоставить хранилищу Github код, который я мог бы использовать в качестве справочного?

PS: Нет необходимости быть особо безопасным, поскольку это будет внутренняя служба, поэтому не имеет значения расположение данных клиента: может быть в одной и той же базе данных или в разных базах данных

1 Ответ

0 голосов
/ 21 мая 2019

Прежде всего, я думаю, что ваш выбор базы данных должен больше зависеть от того, какие преимущества или недостатки дают вам одну базу данных по сравнению с другой.Во-вторых, я не верю, что использование базы данных на пользователя - это хорошая идея, представьте, что произойдет, когда у вас будет 5000 пользователей, будет нелегко администрировать такое количество баз данных или постоянно менять базу данных каждый раз в своем коде.Я предлагаю вам сначала попытаться получить сжатую модель базы данных ваших требований в одной базе данных, а затем вы можете работать и выбирать, какая база данных лучше для вас.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...