【问题标题】:Users and companies - database scheme用户和公司 - 数据库架构
【发布时间】:2012-05-22 20:19:21
【问题描述】:

我正在开发一个项目管理应用程序,每个公司(使用我们的应用程序)都会有一个个人子域:company.domain.com。出于多种原因,我决定为每家公司使用单独的数据库。

公司可以邀请人们(通过电子邮件)共同开展项目。一个用户可以属于多个公司(因此应该出现在多个数据库中)。但是,用户数据和登录信息存储在单独的数据库中,因为每个公司的用户使用相同的用户名和密码,并且他们的名字和姓氏对于每个公司都是相同的。

我现在要做的是:

  • 存在一个单独的数据库,其中包含:用户、身份(user_id、用户名、密码)。
  • 每个公司的每个数据库中也存在一个users表,包含相同的用户数据(实际上只有3个字段:名字、姓氏、时区)。

有没有更好的解决方案? 如果您对此问题有任何疑问:) 请询问。

我正在使用 php + mysql。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    我不认为在更多数据表中包含用户数据是正确的 - 考虑冗余...

    如果您有一个包含用户数据的数据库,为什么不将公司数据库链接到该数据库以获取用户数据?

    一个简单的图像:

    在您的公司数据库中然后您可以在用户表中拥有其他基于公司的用户数据,但公共数据应在每个存储中仅保留一次...

    编辑:ORA 存储只是举例,您也可以使用 MySQL 数据库...

    【讨论】:

    • 没错!冗余是这里的问题。我不想将相同的数据存储两次。感谢您的回答,并为架构 +1。我将对多个数据库选择和跨数据库外键进行一些基准测试。
    • 老实说,我从来没有使用过multidatabase 外键(但从来没有必要),如果我必须这样做,我会考虑使用 MS SQL 或更好的 ORACLE,但它应该是也在 MySQL 中工作:stackoverflow.com/questions/3905013/…
    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    相关资源
    最近更新 更多