2016-11-07 3 views
0

Я только что разработал WebApp с правами человека в Ларавеле.Архитектура и базы данных с несколькими приложениями

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

Теперь у меня есть 2 старых приложения, которые я собираюсь переписать/Перенести в Laravel.

Первый - это управление платежами служащих.

Второе приложение предназначено для мониторинга моего продавца в поле.

Итак, в основном, я в основном переписал их.

Мой вопрос об архитектуре. Я разработаю эти 2 приложения, разделяющие API в Lumen/Laravel для каждого приложения, индивидуально, а затем записывая клиентов в Angular2.

Я использую OAuth2.0 для установки полномочий и областей между приложениями.

Теперь моя нерешительность находится на части базы данных.

Должен ли я хранить базу данных отдельно, включать базу данных в одну и ту же схему или как мне обращаться с моими базами данных.

Сегодня у меня есть 1 DB для каждого приложения, но также у меня избыточность у пользователей: каждое приложение работает с одними и теми же пользователями и поэтому дублирует эту информацию.

Прямо сейчас, когда пользователь создан в App1, он вызывает API-интерфейсы для его создания в приложениях2 и app3. Это не так приятно, ИМХО.

Так что, я думаю, что я хотел бы иметь единую базу данных пользователей, но я на самом деле не имею опыта, что:

  • я должен извлечь данные пользователя в центральной базе данных для всех пользователей, должны
  • Должен ли я сохранять информацию пользователя, дублированную между моей БД?
  • если я держу его в 3 дифферент DB, как я должен сделать JOIN и сделки, внешние ключи и т.д.

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

Важно отметить, что у меня не так много трафика, не более 1000 пользователей, и все они принадлежат моему предприятию, и это не будет увеличиваться. Итак, действительно, сделать масштабируемое приложение не должно быть моим приоритетом прямо сейчас.

Любой совет будет оценен!

ответ

0

Поскольку у вас есть общие базы данных между вашими приложениями, обычной практикой является их использование в одном приложении Laravel/Lumen.

Как вы можете это сделать, это разделение приложений внутри групп маршрутов, назначение имен иерархии контроллеров каждого приложения и объявление внутри каждой модели соединения, которое вы будете использовать для этой модели.

Таким образом, вы можете использовать одни и те же соединения БД для всех своих приложений и использовать одни и те же данные без необходимости их дублирования.

Смежные вопросы