-1

我有几个 PHP Laravel 项目(restful API、管理应用程序、客户端应用程序)。API 只使用一个数据库。该项目是一些公司可以使用的某种应用程序。他们可以访问管理面板、客户端网页,可以使用自己的 API,可以创建自己的用户、权限等。如果这个项目将被一个客户使用是没有问题的,但我打算把这个应用程序卖给很多人。我将负责更新、托管、配置等。我想知道如何使它成为最好的方法,我有一些想法。

  1. 每次有人从我这里购买时,我都考虑在服务器上克隆该应用程序。这需要在服务器上设置一个新的子域和大量的磁盘空间。不确定。
  2. 或者可能克隆应用程序并与供应商、node_modules 等符号链接共享一些文件。
  3. 另一个想法是将它作为一个项目,为不同的客户提供许多数据库,但是如何在 Laravel 中以最好的方式制作它?我需要一些动态的方法来更改数据库连接(我希望每个客户端都有单独的数据库),我不确定与会话、缓存等的冲突。
  4. 也许单独的数据库是一个错误的想法,最好拥有一个数据库并将其作为一个项目并出售对项目的访问权限?但随后我需要将客户的数据保存在一个数据库中。

你怎么看?

4

1 回答 1

0

将此应用程序创建为 SaaS(软件即服务)。您可以给他们一些默认的前端模板甚至客户端应用程序(网站和管理部分),但将所有后端保留在您的服务器上。制作 REST 端点、验证客户端并为他们提供他们购买的功能。

例如:

客户 A 向您购买了计算器服务。它进行身份验证,并对 /api/calculate/subtract/5/1 进行 GET 调用。你让他们回答你的计算器所做的事情,例如 5-1 = 4。他们可以使用你准备好的模板进行数据预览或创建自己的模板。

客户 B 向您购买了计算器和存储服务。您计算相同的值,将其返回,但也将其存储在您自己的数据库中。所以客户端 B 也可以调用 GET /api/storage/last_calculation 你给他们 4,因为客户端数据存储在你的数据库中,他也购买了存储服务,所以他不需要自己设置数据库。

这是一个非常简单的例子,但你应该明白这一点。

例如,每个客户端都有单独的数据库的简单方案: 在此处输入图像描述

于 2019-11-13T07:46:29.713 回答