例子:
学生表(id、name)
学生爱好表(id、student_id、hobby_id、is_delete),当一个学生开始的爱好有“篮球”,然后删除爱好篮球,再添加爱好“篮球”,此时学生爱好表应该是什么变化,是删除后新增一条记录,还是is_delete变化。
另外在什么样的情况下使用什么样的方式?
这个根据你的具体业务要求定吧。
需要保存操作记录的话,使用is_delete变化,但是不删除数据;
反之,就是delete,insert
按照我的理解,你这里is_delete只是软删除,也就是说,当你删除爱好篮球的时候,is_delete变化,但是数据在表中不会删除,前台查询应该不会显示。当你再新增爱好篮球时,表中会新增一条记录。也就是说,如果你删除再新增,实际上会多一条数据,原来的那条数据只是is_delete变化。具体可以想象下删除爱好篮球,再新增爱好足球,如果你只是is_delete变化,那你以前的爱好篮球在新增足球的时候应该放在哪?是修改is_delete的同时清空吗?那貌似is_delete没有啥意义了。这是我的理解☺说的可能有点复杂,希望楼主多读几遍。
关键性的数据都是修改标示性的删除。
不关键的也不需要操作记录的就可以直接删除 。
会产生大量数据的, 一般来说不保存记录也是直接删除 因为不干掉会浪费资源。
具体的都是根据业务需求来的,一般系统都会有要求保留操作记录。