我有一个数据库我需要一些关于如何在这种情况下进行的建议。假设我有一个名为Tasks的表。每个任务都有一个名为CreatedBy的属性,我需要存储有关创建该任务的用户的信息。
我可以存储例如该用户的Id,当我获取任务时,我获取有关用户的信息,以便特定任务Createdby字段值将是John Smith,而不是id。到目前为止都很好。我应该怎样或者如何处理这样一种场景,即让用户John Smith从系统中删除/删除并且任务仍然存在,如何显示创建任务的用户的名称?我仍然需要在那里展示John Smith,而不仅仅是id。
答案 0 :(得分:3)
您可以将Active
列添加到User
,而不是删除用户。在John Smith删除其帐户而不是删除的情况下,您将Active
设置为false
。
这称为软删除。
答案 1 :(得分:2)
在这种情况下,我会对User表使用'soft deletes'。在User表中添加一列,并将其命名为“Active”,默认值为1.如果要删除用户,请将值设置为0.这样可以继续为用户强制实施参照完整性。