在 sql 审核列(如 CreatedBy/ModifiedBy)中存储 UserId 而不是 Username 的优点

本文关键字:UserId 存储 Username sql ModifiedBy CreatedBy | 更新日期: 2023-09-27 18:34:37

我一直想知道为什么在大多数示例/教程中每个人都将用户名存储在审计数据库列中,例如CreatedBy/ModifiedBy

在我的脑海里,我一直在想,如果我正在构建的系统允许用户更改他们的用户名,只要它不被占用,该怎么办。

在这种情况下,我不想存储用户的 ID 吗?

我真的不希望这是一个基于意见的问题。因此,我期望的答案是将用户名存储在审核列中的情况很好,而将用户的ID存储在审核列中的情况很好。

在 sql 审核列(如 CreatedBy/ModifiedBy)中存储 UserId 而不是 Username 的优点

这不可能不是一个基于意见的问题。但是,请考虑使用用户 ID 时会发生什么情况。下一个合乎逻辑的结论是创建用户表的外键。现在,如果用户具有审核行,则无法删除该用户。

好吧,没什么大不了的。跳过外键并输入不带外键的用户 ID。现在,如果删除"用户"行,审核信息有多大用处?特别是如果您有身份或唯一标识符作为您的用户 ID。该值现在完全无用,因为要从中获取任何值,您必须连接到用户表。

现在,为什么大多数时候您看到的是用户名而不是UserID,这是否有意义?