什么是相当于"删除用户时,删除所有帖子"的数据库概念?这是件好事吗?
另一个例子:如果您的网站是编程论坛,则需要在删除主题之前查找和删除与该主题相关的注释.
这应该在数据库层自动处理吗?
级联删除
我会毫不犹豫地推荐真正删除 - 而是使用软删除将记录标记为已删除 - 在这种情况下,您可以使用级联更新(或不使用,因为原始主题已被标记为已删除).
级联更新,通常与外键引用一起使用.不同的DBMS提供不同级别的支持.
在论坛或类似网站的特定情况下,我建议使用"软"删除 - 将数据库中的行标记为已删除,这将阻止在列表或搜索结果中查看或返回它们,但不要完全删除它们.这有利于取消删除等,以对抗劣质或偏见的适度.
此外,我建议在删除用户帐户时自动删除用户的帖子可能不是所有情况下的最佳行为 - 当然,在处理巨魔/垃圾邮件帐户时,您可能想要删除垃圾帖子,但是你不要不一定要在其他情况下抛弃所有信息,特别是因为它引入了破损引用的问题(例如外部参考,其他帖子的交叉链接等)