【发布时间】:2016-06-17 16:19:41
【问题描述】:
我正在使用 CodeIgniter (PHP) 和 MySQL 为一家面包店公司构建应用程序。该公司拥有约250个特许经营权。我在设计数据库时考虑了以下几个方面:
- 每个特许经营权都必须有自己的数据,因为它们彼此独立
- 他们的所有产品都在所有特许经营商之间共享,这意味着只有一个菜单
- 每个特许经营权都有自己的库存盘点
- 应用程序将有 3 个不同的仪表板:每个特许经营商的管理仪表板和销售仪表板,一个仅用于主要公司,其中包含所有特许经营商的报告。
我设计了一个主数据库,其中包含他们所有可以访问该应用程序的产品、特许经营权和用户。每个用户都将被分配到一个特许经营权和一个仪表板。
然后,每个特许经营商将有一个二级数据库,其中包含他们的库存盘点、销售、客户等。所有特许经营商都将拥有自己的数据库。
这样,应用程序将按如下方式运行:
- 用户将访问应用程序登录页面,并被请求 输入特许经营 ID、他的登录名和密码。
- 所有销售都将“复制”到主数据库中,从而使公司能够跟踪其所有特许经营权。
我的问题是:
假设所有数据库都将托管在同一台服务器上,那么为每个特许经营权拥有单独的数据库是否是一种好习惯?最好为每个数据库分配不同的用户,还是只有一个用户就足够了?
我能否将所有特许经营数据库的名称存储在主数据库中,然后创建一个自定义登录模型,该模型将根据特许经营分配到的数据库设置第二个数据库连接?
【问题讨论】:
标签: php mysql database codeigniter