表中更新字段的首选方法是什么?

时间:2009-04-16 18:23:46

标签: database-design

只是想知道在数据库中存储“更新者”类型字段是否存在首选方法或最佳实践。我倾向于只看到用户名经常被存储,但我一直在设计我的表,其中包含上次更新该表的用户的ID。

是否有理由使用一种方法而不是另一种方法?我喜欢我的方法,有一个很好的反向引用来获取用户......另一方面,它通常意味着你永远不能删除用户(如果你还使用它来创建By)那么也许这是不够的理由?更不用说当一切都必须指向一张桌子时,图表或ORM映射是多么混乱......

4 个答案:

答案 0 :(得分:6)

绝对存储ID而不是名称。否则,如果有人因某种原因想要更改用户名,你会怎么做?

在大多数系统中,永远不应删除用户。只要有一个“活跃”标志或类似的东西。

答案 1 :(得分:4)

如果您有办法将更新绑定到由数据库中的实体表示的用户,那么使用它。如果您没有这种机制(例如,数据库中没有用户),那么存储用户名就可以了。

答案 2 :(得分:3)

你的方法很健全。您不希望删除用户(而是将其归档为“Active”位字段)。这样,即使该用户处于非活动状态,您仍会保留历史记录。

答案 3 :(得分:3)

使用用户ID而不是用户名,占用的空间更少。不要从数据库中删除用户行,使用状态字段将其标记为已删除。