不做显式删除,而用 status=0 代替,是好的实践么?

2017-05-23 15:48:57 +08:00
 27

这样一来,用代码生成器生成的 sql 语句全部都不能用,都得重新写

觉得十分麻烦,大家都是这样用的吗?

5347 次点击
所在节点    问与答
26 条回复
mkeith
2017-05-23 16:08:54 +08:00
一般 orm 支持软删除的吧
shiny
2017-05-23 16:11:23 +08:00
BOSS:小王,把上次删除的恢复下
shiny
2017-05-23 16:13:44 +08:00
记得很久以前看到过一个观点:真实世界是没有删除的。订单作废,用户禁用,员工离职,文稿废弃,优惠券作废。所以 SQL 里面 DELETE 在业务场景里都不应该出现。
littleylv
2017-05-23 16:15:06 +08:00
挺好的
murmur
2017-05-23 16:15:21 +08:00
如果是面试的话应该是大量删除触发索引重建,而现在数据库空间不值钱索引重建一次卡的 cpu 和 io 值钱
shoaly
2017-05-23 16:28:41 +08:00
laravel 在 orm 里面 是不会查询出软删除的数据的.
提供一次后悔的机会.. 万一呢, 万一傻逼了呢
otakustay
2017-05-23 17:12:11 +08:00
你只要理解数据比钱更值钱,就明白要怎么做了
liprais
2017-05-23 17:13:37 +08:00
数据都删了还分析啥
ovear
2017-05-23 17:19:03 +08:00
第一是安全。。第二是恩。。你懂得
Anybfans
2017-05-23 17:22:05 +08:00
很想知道 django 有没有这个软删除。。
helloworldwt
2017-05-23 17:25:45 +08:00
一般都是逻辑删除,不实际删除的。在数据库里使用一个状态来表示
zyue
2017-05-23 17:28:47 +08:00
我建的表都有个 is_deleted tinyint 字段
wc951
2017-05-23 17:45:17 +08:00
那要看是什么数据了,也不是所有业务场景都需要留着过期数据
yghack
2017-05-23 17:55:34 +08:00
生产环境不能有 DELETE 权限
zhenjiachen
2017-05-23 17:56:29 +08:00
deletedAt 日期格式,这个字段好一点,你 status 不知道什么时候删除的,查询直接使用 deletedAt is not null 就好
microget
2017-05-23 17:59:54 +08:00
必要
@zhenjiachen 我一般是配合 updateAt 这个字段判断删除时间。
solee
2017-05-23 18:06:28 +08:00
很好啊 我们也是配合 updatedAt 字段使用 软删除
Mogugugugu
2017-05-23 18:06:33 +08:00
逻辑删除,不会无理删除的.一方面避免误操作,另一方面 数据无价,无论用来干啥...
cloverstd
2017-05-23 18:09:51 +08:00
软删除,多对多联查的很麻烦啊
Ouyangan
2017-05-23 19:22:57 +08:00
你改下 代码生成器

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363226

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX