多应用程序架构和数据库

时间:2016-11-07 17:33:27

标签: laravel architecture multiple-databases

我刚刚在Laravel中开发了一个Human Ressource WebApp。

所以在这个应用程序中,我有我的用户数据库。

现在,我有2个旧应用程序,我即将重写/迁移到Laravel。

第一个是管理员工付款。

第二个应用程序用于监控我的现场销售人员。

所以,基本上,我基本上会重写它们。

我的问题是关于建筑。我将开发这两个应用程序,分别在Lumen / Laravel中为每个应用程序分隔API,然后在Angular2中编写客户端。

我将使用OAuth2.0在应用之间设置授权和范围。

现在,我的优柔寡断存在于数据库部分。

我应该保持数据库分离,在同一模式中包含数据库,或者我应该如何处理我的数据库。

今天,每个应用程序有1个数据库,但是,我还有用户冗余:每个应用程序都使用相同的用户,因此复制此信息。

现在,当在App1中创建用户时,它会调用API以在app2和app3中创建它。这不太好,恕我直言。

所以,我想我想拥有一个用户数据库,但我真的没有这方面的经验:

  • 我是否应该在所有用户的中央数据库中提取用户信息
  • 我应该保持用户的信息在我的数据库之间重复吗?
  • 如果我将它保存在3个不同的DB中,我应该如何创建JOIN,事务,外键等。

我知道没有一个答案,这取决于我想要什么,但这也是我的问题,我不知道我应该问哪个问题做出决定???

重要的是要提到我没有那么多流量,最多1000个用户,而且它们都属于我的企业,它不会增加太多。所以,真的,制作一个可伸缩的应用程序现在不应该是我的首要任务。

任何建议都将不胜感激!!!

1 个答案:

答案 0 :(得分:0)

由于您在应用之间共享数据库,因此常见的做法是将其放在同一个Laravel / Lumen应用中。

您可以实现此目的的方法是将路径组内的应用程序分开,命名每个应用程序的控制器层次结构,并在每个模型中声明您将用于此模型的连接。

通过这种方式,您可以为所有应用程序使用相同的数据库连接,并共享相同的数据,而无需复制它。