我的问题与this question非常相似,但有点具体。
我的应用程序有多个公司,每个公司有多个用户。对我来说(在这一点上)每个公司都有一个“私人”表格是最有意义的。这使得安全性非常简单,因为我不必担心加入我的结构树以确保我只获取特定公司的数据。我还可以扩展mysqli数据库扩展并让它在查询中的表名上加上一个前缀,这样我就不必在编写查询时担心安全性。
我可以看到的另一个主要优势是,如果其中一家公司需要定制,我可以修改他们的特定表,而不必考虑其他人。我的应用程序的设计方式非常模块化,实现自定义代码非常简单。
我可以看到一些缺点,但到目前为止,上述优势似乎超过了它们。上面提出的系统确实对我(可能)超标准化的数据库模式偏好进行了评估。另一个明显的缺点是实现模式更改,但我可以编写脚本并且足够安全。我不确定的一点是表现。如果我有MySQL使用这么多表,我会为自己制造瓶颈吗?
我期待你的想法!
答案 0 :(得分:4)
你的建议对我来说听起来很合理。我建议您不要在表格前加上公司名称,而是将每个公司的表格存储在单独的模式中。这样,您可以拥有相同名称的表,减少代码中的问题,并以方便的方式使用不同的用户名和密码保护每组表。然后,备份和复制将在需要时进行区分。
查找表可以存储在所有用户都可以访问的另一个模式中。