关于数据库表的设计?求指教

撸大师 发布于 2013/07/10 23:46
阅读 356
收藏 1
有个学生表,有个教师表,是n对一的关系,我应该在学生表里加个对应教师的ID,还是直接存个老师名字的字符串,如果存ID的话,我每次要知道这个学生的老师都要又根据学生表里的老师id去找这个老师的名字,是不是效率又低了?你们是怎么搞的?
加载中
0
純白陰影
純白陰影
存ID,ID是主键,关联查询很快
0
eXtreme
eXtreme
如果不准备对老师相关的属性进行扩展,直接保存一个名字也是可以的。想要为你的系统保留足够好的扩展性,还是分开保存,用数据库联查一次性取出你要的数据。
0
森林木
森林木
一般的应用,请不要把速度当成第一考虑因素,其实已现在的计算机的性能,速度不是问题,在数据库设计中首要考虑的是是否符合三大范式,个人认为设计关系型数据库时至少要符合第二范式。 
0
王瑞平
王瑞平
两个都存一下,名字这个字段常用,需要冗余
0
魔力猫
魔力猫
你有去学关系数据库基本理论就不应该问这种问题。
0
呼啦_小呆
呼啦_小呆
如果真有两个名字一样的老师怎么办~
呼啦_小呆
呼啦_小呆
回复 @傻不拉唧debug : 其实这种情况 编号和ID是等价的,我们需要的只是唯一标示这条记录的东西作为主键,我有做过一个项目,是不要ID这个东西的,直接拿逻辑主键作为物理主键。
撸大师
撸大师
这只是一个例子吧,比如,老师的名字,换成老师编号,我要是程序只需要学生对应的老师的编号,那我是直接存编号还是存id,然后根据id去找编号,我想表达的是类似的情况。
0
panmingguang
panmingguang
在学生表里可以 把名字和ID 都存上, 如果只要 知道学生的老师的话直接就出来了, 如果需要详细信息 还是要根据 id查, 看数据复杂度的
0
dong
dong
学生表里加teach_id 如果老师姓名经常 使用,你又不想联表查就把teach_name在学生表里再存一下,在数椐冗余性方面做一些牺牲 
0
魔力猫
魔力猫

我最看不得的就是用性能做借口胡乱冗余。性能到底因此提高多少没人说得清楚,只有因为同一个数值到处都是难以维护的抱怨。


0
52java
52java
存ID,最好按照数据库标准来,这样好维护,你不能因为查询的方便而损害维护的方便。毕竟查询只是一种利用数据库的方式,其他的东东你也要留有后路
返回顶部
顶部