我正在设计一个拥有多种用户类型(即管理员,编辑,教师和学生)的数据库。现在所有这些用户都有一些共同的字段(CF)和一些与它们相关的唯一字段(UF)。我想知道这是不是一个好设计?数据库设计问题:多种类型的用户
表的用户:[USER_ID(PK),CF1,CF2,...,CFN,USER_TYPE(枚举)]
表管理:[ID(PK),UF_A1,UF_A2,...,U_AN ,USER_ID(FK)]
表编辑:[ID(PK),UF_E1,UF_E2,...,U_EN,USER_ID(FK)]
表教师:[ID(PK),UF_T1,UF_T2 ,...,U_TN,USER_ID(FK)]
表生:[ID(PK),UF_S1,UF_S2,...,U_SN,USER_ID(FK)]
其中UF_A,UF_E,UF_T和UF_S是每个相应表格的唯一字段。
现在我的问题是:
- 这是一个好的设计?如果不是,你将如何设计它?
- 如何确保user_type教师的用户不在学生表中存储例如?
PS:一些更多的积分,如果他们可能会在得到一个更好的了解有所帮助:
- 该数据库将与笨使用。 CF的
- 的例子是:用户名,密码,电子邮件,个人资料图片 独特领域的
- 例子是:学生(年龄,报名号),教师(大学名,大学的标志,学位。)
10你会如何评价“好”? – 2013-05-08 09:40:27
对不起,'好'不明确。我的意思是一个强大的,可扩展的设计,并遵循关系数据库设计的最佳实践。我之前没有任何数据库设计经验,所以我很害怕做出一个可能在以后很昂贵的新手错误。 – joshi 2013-05-08 09:44:23
我会选择一个更“角色”的架构,所以SELECTS和JOINS不会变成噩梦。用户表,角色表,user_role_vars表。 – jtavares 2013-05-08 15:05:45