日期:2014-05-17  浏览次数:20573 次

表设计, 很多字段都是与其他表关联的
一个记录表, 里边有很多字段是和其他表关联的 ,比如存一个用户id-->用户表
但是这样的话 后期的显示和统计就都得和其他表联合查询才可以显示完整;
 
我在考虑是否在多几个字段来存其他表的名称 比如 :用户名 也一起存了,

这样到后面显示或者统计啥的就不用再去join来join去的     还有什么办法么,或者这两种的优劣


thanks in advance

------解决方案--------------------
如果你员工资料表总是有数据删除的话,那销售记录表里的员工名称最好不要用外键(存储员工信息表的主键,通过主键获取员工姓名),应该直接存储员工姓名;供参考,属于个人意见。
------解决方案--------------------
引用:
Quote: 引用:

如果你员工资料表总是有数据删除的话,那销售记录表里的员工名称最好不要用外键(存储员工信息表的主键,通过主键获取员工姓名),应该直接存储员工姓名;供参考,属于个人意见。


存ID最主要的是可以获取外键表里的全部信息,毕竟ID 比 string来的靠谱
貌似被调用到的主键数据不能删除的吧!!!还是新添加一类放状态,表示离职,在职,冻结什么什么的自己看着办。
------解决方案--------------------
有些冗余属于“友好冗余”
至于你自己的表里,哪些可以作为友好冗余,要看你的查询范围、查询密度,甚至包括页面的显示范围。
这些需要后期的实际数据做测试,才能确定。没有统一的标准。

所以一般情况还是看服务器状况,个人爱好了。
我个人比较喜欢冗余。除了涉及到保密的信息,其他的都做冗余。
其实我觉得做冗余对于后期的数据库修改更有利一些。

------解决方案--------------------
引用:
Quote: 引用:

建议还是用表关联的方式,例如有个员工改名,只需对应修改用户表的姓名字段即可,
而无需更新所有表的姓名字段,这样的工作量很大.


元曲有多少首

我想大概,或者,应该也是三百首..

------解决方案--------------------
引用:
Quote: 引用:

个人感觉:除非表数据量很大,多表连接速度慢。而且表结构及内容很稳定,很少改。才可以冗余。
像我之前的公司,料件的品名,基本上每个月都会改一二次,如果“品名”做冗余了,那就相当麻烦了。
  而且你的不用保持品名状态吧


一改品名,几年前的单据也会跟着变的。
曾经跟老板说过,这样不合理。
老板就说了:那再增加一个表,记录从哪天开始是这个名,这天之前是另一个名。生成报表时判断一下。
结果是,我们投降了,随便老板改吧。因为按上面的这个说法,会改死人的。