如何处理行的删除或启用/禁用以及其引用表的最佳实践?
例如,假设我有一个非常简单的“论坛”应用程序。
我有一个包含我的 Web 应用程序帐户的表 users
,一个包含用户创建的主题的表 threads
,以及一个包含用户对主题发表评论的表 comments
。
现在,假设在注册时,我想在激活其账户之前验证用户的电子邮件。这样做的最佳方式是什么?有哪些最佳实践?也许通过一个视图,只返回一个具有字段 is_active=true
的行?使用 2 个分开的表,如 pre_users
(包含仍需验证的用户)和 users
(已验证的用户)?
同样,您将如何处理要暂停其账户的用户?还有他们的主题和评论呢?您会添加另一个标志 is_suspended
,并更新该视图以考虑该标志吗?如果不是视图而是 2 个分开的表,我该如何处理引用?
此外,如何删除主题?假设在删除主题时,我不想实际删除主题,因为我不希望发表评论的用户突然看不到他们的评论。您将如何处理这个问题?
这些问题有哪些最佳实践?