用户和公司 - 数据库架构

时间:2012-05-15 10:24:42

标签: php mysql

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

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

我现在所做的是以下内容:

  • 存在一个单独的数据库:users,identity(user_id,username,password)。
  • 每个公司的每个数据库中都存在一个用户表,其中包含有关用户的相同数据(实际上只有3个字段:名字,姓氏,时区)。

有更好的解决方案吗? 如果您对这个问题有疑问,请询问。

我正在使用php + mysql。

1 个答案:

答案 0 :(得分:2)

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

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

一张简单的图片: Example on how to divide users tables

在您的公司数据库中您可以在用户表中添加其他基于公司的用户数据,但每个存储只能保留一次公共数据...

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