我正在考虑为一个从不真正删除任何东西的数据库设计一个关系型数据库模式(可以设置删除标志或者其他)。
1)通常使用哪些元数据列来适应这种架构?显然,可以设置一个IsDeleted的布尔标志。或者仅在一个Deleted列中放置一个时间戳会更好,或者可能两者都行。我不确定哪种方法会在长期运行中给我带来更多问题。
2)这种架构通常如何处理更新?如果将旧值标记为已删除并插入一个新值,则会遇到PK唯一约束问题(例如,如果您有PK列ID,则新行必须具有与刚刚标记为无效的行相同的ID,否则该ID在其他表中的所有外键都将无用)。