我有一个ER图,它由用户表组成,其中它被设置为用户ISA管理和用户ISA成员。
管理表和成员表都是用户的子表。我想要两个用户类型,m代表会员,a代表管理员。
管理员可以选择将管理面板中的成员更改为管理表: ADMIN (PK)和用户ID(FK)
成员memID (PK) userID (FK) signupDate最新登录位置,年龄,bio
用户表由ID (PK) fname lname密码用户类型电子邮件组成
我想要实现的是..。
客人必须在注册年龄时通过表格注册,并且必须自动设置为会员的用户类型(m)。
所以因为我把它作为用户ISA成员用户ISA管理员
有登记表的最好方法是哪一种?它应该是两个表(用户和成员),这将是最容易的方式来实现这一点的话?还能解释一下如何确保它是自动为会员设置一个用户类型'm‘吗?
发布于 2014-11-18 18:04:40
为了告诉admin,您可以只使用一个列(user_type)。您还可以使用表架构中的默认设置来处理这个问题。
但是,如果您最终想要一个更健壮的权限系统,我建议:
users -存储用户信息permissions -附(例如,permission_id、permission_name)users_to_permissions -一个连接两者的表这样,您就可以显式地为不同的事情分配权限:
SELECT p.* FROM permissions p WHERE permission_id IN (SELECT DISTINCT permission_id FROM users_to_permissions u2p WHERE u2p.user_id = :user_id
显然,您也可以使用JOIN或任何最适合您的用例。当有疑问时,更喜欢归一化和可扩展性,而不是快速的一列解决方案。
SqlFiddle:http://sqlfiddle.com/#!2/bddba5/2
https://stackoverflow.com/questions/27000757
复制相似问题