表结构:
商品表,商品关联表1,商品关联表2
程序员A写的删除代码,删除时从 商品表,商品关联表1,商品关联表2 中删除数据。
程序员B因为业务需要,加了一个 商品关联表3,但删除程序里没有删除商品关联表3的操作,他不知道A写了删除操作,也没有权力去修改程序员A写的删除代码。导致商品删除时,商品关联表3中冗余了数据,导致查询时不能搜到相关的商品而报错或者好一点的显示成了空。
请问,这种场景是谁的过错?
是程序员A应该设置一种机制来约束新加的表的删除?
或是程序员A在做好删除操作时,应该告知其他程序员要遵守删除规则?
还是程序员B应该在新加表时自发考虑到删除的级联操作?
感觉这里的约束始终找不到办法。
想要避免这种情况,不是应该遵守数据库规范--》实施参照完整性吗?新增的表3设置了商品表的外键,当在删除商品的时候,便不允许删除商品。
直接删除商品会报错,除非先把引用删除。