表设计, 很多字段都是与其他表关联的
一个记录表, 里边有很多字段是和其他表关联的 ,比如存一个用户id-->用户表
但是这样的话 后期的显示和统计就都得和其他表联合查询才可以显示完整;
我在考虑是否在多几个字段来存其他表的名称 比如 :用户名 也一起存了,
这样到后面显示或者统计啥的就不用再去join来join去的 还有什么办法么,或者这两种的优劣
thanks in advance
------解决方案--------------------如果你员工资料表总是有数据删除的话,那销售记录表里的员工名称最好不要用外键(存储员工信息表的主键,通过主键获取员工姓名),应该直接存储员工姓名;供参考,属于个人意见。
------解决方案--------------------貌似被调用到的主键数据不能删除的吧!!!还是新添加一类放状态,表示离职,在职,冻结什么什么的自己看着办。
------解决方案--------------------有些冗余属于“友好冗余”
至于你自己的表里,哪些可以作为友好冗余,要看你的查询范围、查询密度,甚至包括页面的显示范围。
这些需要后期的实际数据做测试,才能确定。没有统一的标准。
所以一般情况还是看服务器状况,个人爱好了。
我个人比较喜欢冗余。除了涉及到保密的信息,其他的都做冗余。
其实我觉得做冗余对于后期的数据库修改更有利一些。
------解决方案--------------------
建议还是用表关联的方式,例如有个员工改名,只需对应修改用户表的姓名字段即可,
而无需更新所有表的姓名字段,这样的工作量很大.
元曲有多少首
我想大概,或者,应该也是三百首..
------解决方案--------------------
个人感觉:除非表数据量很大,多表连接速度慢。而且表结构及内容很稳定,很少改。才可以冗余。
像我之前的公司,料件的品名,基本上每个月都会改一二次,如果“品名”做冗余了,那就相当麻烦了。
而且你的不用保持品名状态吧
一改品名,几年前的单据也会跟着变的。
曾经跟老板说过,这样不合理。
老板就说了:那再增加一个表,记录从哪天开始是这个名,这天之前是另一个名。生成报表时判断一下。
结果是,我们投降了,随便老板改吧。因为按上面的这个说法,会改死人的。