单表(添加用户角色字段)还是多表(每种用户角色一张表)?
数据库设计时,多员工不同角色用以下哪种设计方法比较好?多表和单表的好坏之处?
1. 单表 —— 加用户角色字段。
2.多表——每种角色一个表。
多表的好处:
1.话查询效率应该高一点吧,特别是多请求并行处理的时候.
2.简化程序逻辑,减少bug的可能。比如学生和老师,学生只能选课,老师只能教课,在对学生-选课和老师-教课表的操作时就省略了判断用户角色步骤,也可以防止用户恶意提交。比如通过通过get传递id时手动修改url的值。
多表的坏处:
?
单表的优缺点应该刚好跟多表相反吧?
------解决方案--------------------每种角色一个表,这种是不合理的,你不可能新加一个角色就给它来个表,这。。。
建议:角色为一个单独的表,用户中有个字段关联到角色,这种设计才是最常用的,也是合理的
表少冗余数据多,有助于查询
表多冗余数据少,关系结构性好,查询分析起来可能写的关联条件比较多,速度可能稍有点慢,不过表设计合理,就可以了
------解决方案--------------------在登陆的时候初始化这个角色为一个session值啊,判断是老师类型的时候不插入啊
if (session("personType") == "老师")
{
db.excute("insert into Teacher-Chose valuse(userid,classid)");
}