大家在規劃數據庫的時候,一般是規劃完整數據庫,還是規劃簡單數據庫
有這麼二個或以兩個以上的表
A 物料庫
物料ID 物料名 物料規格 說明
B 廠商庫
廠商ID 廠商 地址 說明
在規劃 進出庫表的時候是按
方案一:進出庫
ID 廠商ID 廠商 物料ID 物料名 物料規格 數量 變動日期 變動人
規劃好還是按
方案二:進出庫
ID 廠商ID 物料ID 數量 變動日期 變動人
如果接方案二規劃的話,那麼在查詢時相對sql語句可能會復雜一點
如果按方案一規劃的話,那麼隻是在更新數據庫時更新語句編寫要謹慎點
但具體如果大型的系統應該用哪種規劃比較合理呢?
------解决方案--------------------方案二好些,理由有2:
1.進出庫表肯定是个数据量很大的表,冗余廠商,物料名,物料規格这些数据会使表变得庞大.
2.如果廠商,物料名,物料規格经常会改变,那还需要去同步进出库表.
当然,如果某此字段不会改变又查询的频率很高可以冗余过来.
记录ID查询的时候只需关联显示,个人认为比方案一好.
------解决方案--------------------正常的情况下都应该选择第二个方案
不仅是冗余的问题,还要考虑以后的扩展和数据库的整体规划
------解决方案--------------------我喜欢第一种方案,不但开发效率高,而且查询效率高,扩展已经在AB表中留有余地,
物料名 与 廠商 是经常需要一起显示的内容,join的效率肯定要低
------解决方案--------------------一般是方案2, 只要有合理的索引, 这样的方案扫描的数据页会比方案一少很多.
而对于性能来说, DISK I/O 的多少, 对性能的影响是很大的.
------解决方案--------------------通常是方案2好.
不会出现数据冗余
也就是当有物料名称和变化是,你只要更新一条物料库中的数据
如果你用第1种方案的话就要更新所有与该物料的记录