不知道数据库该怎么设计了,新手求教。。

Iro_ 2014-08-27 10:58:18
在做一个学生实习管理系统,有一个学生表,学生表中有学院、专业、班级、年级,这几个字段是不是需要另外建4个表?因为要通过这几个条件进行查询,比如有下拉框选择某一学院,查询该学院的所有学生,下拉框中的数据需要是不是需要从学院表中获得。这样表好像就有些多了,而且如果都有外键的话,那这个表的外键也太多了。第一次做一个比较大点的系统,不是太熟悉,希望大家指点指点。。
...全文
168 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Iro_ 2014-08-27
  • 打赏
  • 举报
回复
引用 7 楼 Tiger_Zhao 的回复:
学院、专业、班级、年级这些属于字典,就是基本上不会变动、最多每年添几条。单独开表保证没错的。 因为是字典,不存在关联删除的需求,学生表中有多少个外键都没关系。 既然都用到下列表选取了,靠程序就能保证关联性,数据库不建外键也没关系。
嗯,还是经验太少,谢谢了
Tiger_Zhao 2014-08-27
  • 打赏
  • 举报
回复
学院、专业、班级、年级这些属于字典,就是基本上不会变动、最多每年添几条。单独开表保证没错的。
因为是字典,不存在关联删除的需求,学生表中有多少个外键都没关系。
既然都用到下列表选取了,靠程序就能保证关联性,数据库不建外键也没关系。
Iro_ 2014-08-27
  • 打赏
  • 举报
回复
引用 3 楼 OrchidCat 的回复:
我个人的经验是 适度优化,可以冗余 。 其实,现在的很多处理 都是先架上 ,再考虑优化的事情。 不要在刚开始就考虑太多的优化,而浪费太多的时间 。 是否单独建表,可以考虑是否有更多的独立信息。 比如就一个单独的学院字段,就一个名字,没有别的信息。 那就不要建表。 如果还涉及 学院的地址,邮编,联系电话啥的,最好还是分个单独的表出来较好。 后面还有可能扩展。 lz可以参考这个思路,结合自己的需求,处理一下。
嗯,我老是考虑太多,越像越乱,还是慢慢来吧。。谢谢了
Iro_ 2014-08-27
  • 打赏
  • 举报
回复
引用 2 楼 bw555 的回复:
建表的话看业务需要,不要怕多 表结构合理了,将来代码会少很多 1、学院、专业单独建表 2、可以考虑班级、年级建在一起,一般班级都是哪年哪班,如14-5班
嗯,只不过配置实习计划的时候还是要按年级配置。就多建几个表吧。。
Iro_ 2014-08-27
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
图书馆应该有类似的案例书,借来看看吧,一个贴怎么给你说清楚
是,现在学校图书馆没开放,等开学了去查查
Mr_Nice 2014-08-27
  • 打赏
  • 举报
回复
我个人的经验是 适度优化,可以冗余 。 其实,现在的很多处理 都是先架上 ,再考虑优化的事情。 不要在刚开始就考虑太多的优化,而浪费太多的时间 。 是否单独建表,可以考虑是否有更多的独立信息。 比如就一个单独的学院字段,就一个名字,没有别的信息。 那就不要建表。 如果还涉及 学院的地址,邮编,联系电话啥的,最好还是分个单独的表出来较好。 后面还有可能扩展。 lz可以参考这个思路,结合自己的需求,处理一下。
bw555 2014-08-27
  • 打赏
  • 举报
回复
建表的话看业务需要,不要怕多 表结构合理了,将来代码会少很多 1、学院、专业单独建表 2、可以考虑班级、年级建在一起,一般班级都是哪年哪班,如14-5班
發糞塗牆 2014-08-27
  • 打赏
  • 举报
回复
图书馆应该有类似的案例书,借来看看吧,一个贴怎么给你说清楚

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧