我的数据库表包含许多加密的密钥(敏感信息)。这些密钥通过ID字段与用户相关联。在任何时候,我可能需要通过更新其ID字段使用户无效,使其不再可识别。但是,我不想从数据库中完全删除该行。相反,我想保留它用于审计目的。
我可以遵循一个共同的约定,或者只是添加一个字符串,其中包含足够的随机内容以使ID字段无效?
E.g
无效请求前的表
| ID | KEY |
------------------------
| user123 | yiuy321ui |
无效请求后的表
| ID | KEY |
--------------------------------------
| legacy_79878_user123 | yiuy321ui |
答案 0 :(得分:2)
更新用户ID实际上并不是一种非常好的方法。你想要的是能够再说“这个用户不活跃”了,所以在你的用户表上有一个Active位字段似乎是有意义的。
您可能需要更新代码以验证用户,以便仅检查“活动”用户,但从长远来看这将更容易(如果需要,还可以更轻松地重新启用用户)
答案 1 :(得分:2)
我会避免动态使用任何表的任何ID字段。它不仅违反了约定和最佳实践,而且您可能会破坏与该字段上查找/加入的其他表的关联。我建议在表中添加一个简单的布尔字段,并将该字段设置为true或false以保持用户的有效性。