在项目中遇到一个问题:数据库记录重复。经过分析,发现原因是:同一页面的数据记录被多次使用(应该使用一条就隐藏一条)。
直接原因是:数据库记录被缓存到多个客户端的页面中,数据不同步造成的。
根本原因是:数据库的设计使多张表直接产生了数据依赖关系。
数据流:“表A--》表B”,考虑操作在客户端执行,因此演变为 “表A--》客户端--》表B”。由于多个客户端缓存了表A的数据,将唯一路径变成了多条路径,使这个数据流在传输中出了问题。
由此得出结论:在设计数据库时,不应使数据在表之间产生业务上的依赖关系!