我想设计一个将连接到PHP Application的数据库。在应用程序中有两种类型的用户:公司和个人。添加文章等功能将由两者完成,因此在其他表中有author_id列。首先,我决定创建用户专栏。
这很简单:id, username, password, role, active, created
其中,角色定义用户是个人还是公司。
现在我想添加配置文件表或配置文件表取决于您的建议(通过在其中添加profile_id
列与上一个表相结合)。
两个角色都有不同的字段,这些字段在注册时是必需的。
最简单的方法是创建一个包含两个角色的所有必填字段的表,允许它们NULL
值,并在PHP应用程序(在本例中为Yii Framework)中定义模型中每个角色的要求。
最好的方法是为两个角色创建单独的表但是问题是如何使用外键将这两个表连接到一个表?它甚至可能吗?我知道我可以根据角色选择表省略外键创建,然后从该表中选择profile_id
。
或许你可以解决我的问题。
提前感谢您的回复。 阿德里安
答案 0 :(得分:0)
您需要在页面和数据库之间使用中介,以将用户分配给具有特定权限的组。它通常通过用户组角色设计来完成。
答案 1 :(得分:0)
您可以拥有一个表用于用户系统信息(用户名,密码...),另一个用于用户个人资料(名字,生日...),另一个用于组(超级用户,...)。
其中用户表可以包含多个组:user:one-> group:many
用户可以拥有一个个人资料用户:one->个人资料:一个
我认为这是一个不错的解决方案。