我们数据库没有删除数据,只有disable/enable数据,因此如下:
我有一个module表,和一个test表,module和test是一对多的关系。
因此当一个module被disabled之后,这个多方的test也应该被disabled吗?还是不需要操作多方的
disabled,直接在test列表页显示test的时候搜索test by enabled module?
不建议这样懒省事通过关联的方式解决这个问题,这样的影响是显而易见的,今后只要操作test表就必须关联一下module表,代码只会越写越累。
我的方案:
1、添加一个触发器,在更新module时触发test表的更细操作。如果因为一些原因,不能使用触发器,那就同时更新test表,注意事务相关的sql。
2、如果test表强依赖module,那干脆把test表中的enable字段去掉,所以操作test表关联module进行操作
test是多方,列表显示test时一般会显示module的名称,或者搜索时用到module的属性,所以可以不操作多方的disabled,关联module表即可
你说的无非就是数据假删除,虽然是假删除,但是也是“删除”,那么真删除的时候,你应该删除级联的数据,假删除的时候,当然也应该将级联的数据标记出来(也就是disable)。