Mysql 设计.两种类型的用户,两种不同的配置文件


Mysql design. Two types of users, two different profiles

我想设计一个将连接到PHP应用程序的数据库。在应用程序中,有两种类型的用户:公司和个人。添加文章等某些功能将由两者完成,因此在其他表中有author_id列。所以首先我决定创建用户列。

这很简单:id, username, password, role, active, created角色定义用户是个人还是公司。

现在我想添加配置文件表

或配置文件表取决于您的建议(通过在此处添加profile_id列与上一个表连接(。

这两个角色具有不同的字段,这些字段在注册期间是必需的。

最简单的方法是创建一个表,其中包含两个角色的所有必填字段,允许它们NULL值,并在 PHP 应用程序中(在本例中是在 Yii 框架中制作的(中定义模型中每个角色的要求。

最好的办法是为两个角色创建单独的表,但问题是如何使用外键将这两个表连接到一个表?甚至可能吗。我知道我可能会省略外键创建,然后根据角色选择表,然后从该表中选择profile_id

或者,也许您对我的问题有另一种解决方案。

提前感谢您的回复。艾利安

您需要页面和数据库之间的中介,以将用户分配到具有特定权限的组。 它通常通过用户组角色设计来实现。

您可以有一个用于用户系统信息(用户名、pass ...(的表,另一个用于用户配置文件(名字、生日...(的表,另一个用于组(超级用户、...(。

其中用户表可以有多个组:用户:一>组:多

用户可以有一个配置文件 用户:一个>配置文件:一个

我认为这是一个不错的解决方案。