Php web应用程序的多实例与单实例

Php web应用程序的多实例与单实例,php,web-applications,multi-tenant,Php,Web Applications,Multi Tenant,我将构建一个销售和财务web应用程序。应用程序将包含一些客户的敏感信息。所以,我决定对DB采用独立的方法,并将它们的数据库分开。但是,我混淆了应用程序的单实例和多实例。让我详细介绍一下我的申请 将定期更新应用程序,例如未来将添加新功能 每个客户都可以选择购买应用程序中的所有模块,也可以选择对自己有用的特定模块。因此,通过这种方式,每位客户都可以选择我们提供的任何模块,例如,他可以购买2个模块,也可以购买所有模块 还有一个自定义选项。客户可以要求添加满足其需求的新模块,但当然也会有一些限制 每个客

我将构建一个销售和财务web应用程序。应用程序将包含一些客户的敏感信息。所以,我决定对DB采用独立的方法,并将它们的数据库分开。但是,我混淆了应用程序的单实例和多实例。让我详细介绍一下我的申请

  • 将定期更新应用程序,例如未来将添加新功能
  • 每个客户都可以选择购买应用程序中的所有模块,也可以选择对自己有用的特定模块。因此,通过这种方式,每位客户都可以选择我们提供的任何模块,例如,他可以购买2个模块,也可以购买所有模块
  • 还有一个自定义选项。客户可以要求添加满足其需求的新模块,但当然也会有一些限制
  • 每个客户都有单独的URL
  • 将有一个产品模块,用户可以在其中添加其产品(注意:这不是一个电子商务网站),每个客户将来自不同的行业,因此他们的产品规格要求将不同。例如:如果一位客户来自化妆品行业,那么他的产品实体将是名称、颜色、数量;如果另一位客户来自食品行业,销售饼干,那么他的产品实体将是名称和味道。所以,在这种情况下,如果我为所有人保留一个应用程序实例,那么,我怎么可能为每个客户提供具有不同字段的产品模块呢
  • 所以,对于这样的应用,我想使用单实例应用,即所有应用的一个实例,但我想听取专家的建议

    请建议我什么将是正确的和最有效的选择,为我的申请


    谢谢。

    对于产品模块,解决方案是让用户自行配置其产品:

    您的产品实体将包括每个产品存在的所有公共属性(可能是名称,也可能是其他)

    然后,对于所有特定字段,创建一个中间实体来保存这些字段

    class Product
    {
        /**
         * @var int
         */
        private $id;
    
        /**
         * @var string
         */
        private $name;
    
        /**
         * @var array
         */
        private $customFields;
    
        // ...
    }
    
    class CustomField
    {
        /**
         * @var int
         */
        private $id;
    
        /**
         * @var string
         */
        private $fieldName;
    
        /**
         * @var string
         */
        private $fieldValue;
    
        // ...
    }
    
    这样,您的客户将定义其产品的属性,您只需通过迭代
    $customFields
    数组来显示字段


    我认为这是实现产品模块目标的最简单的方法。

    我将构建一个销售和财务web应用程序。
    然后,当您考虑如何实现该应用程序时,您会陷入困境!只有一个问题:你是想自己编写这个洞,还是想使用Symphony这样的框架?还没有决定,我正在研究,我会选择最好的方案。你有什么建议,框架将是一个很好的选择?我没有陷入困境,我只是想选择它,因为当我在研究它的架构时,我遇到了我在问题中提到的两个选项,所以我只需要专家的建议。我真的不知道你想做什么,但当我听到像
    构建销售和财务web应用程序
    这样的事情时,没有一行代码被编写,听起来像是:我想一无所有地自己造一辆车。如果你想做一些像应用程序这样的事情,那么有很多主题需要讨论。请看看框架能为您做些什么,这样您就不必自己编写所有这些东西了。我可以问一下,您需要多长时间才能进入第一个工作阶段?我认为确定应用程序的基础结构是项目开发的基本步骤之一。在不确定项目的主要结构的情况下,如何开始编写代码。对于你的问题,我想我需要15天-1个月的时间来完成我的第一个工作阶段。我现在是一名PHP开发人员,已经有几年了,
    Mutli instance vs Single instance
    从来都不是一个话题。我试着把它和PHP一起用谷歌搜索,但结果并不是这样。也许我唯一想知道的是,你的问题的答案是,在这里讨论这个问题,非常感谢。这就是我要找的+不客气。关于单实例/多实例问题,两者都是可行的,这取决于您(以及您的项目),但是如果您选择使用单实例或多实例应用程序,那么您的体系结构将不同。对不起,如果您选择使用单实例或多实例应用程序,那么您的体系结构将不一样,这意味着什么?很抱歉,我没有理解你的意思。我的意思是,如果你要提供一个单实例应用程序,你将以某种方式设计你的应用程序,如果是多实例应用程序,你将以另一种方式设计你的应用程序。例如,在一个多租户应用程序中,每个客户都有一个数据库,但在一个实例应用程序中,您只能有一个数据库来完成这项工作。是的,没错。我的应用程序适用于多租户。再次感谢你的回答。