sql - 是否可以为 'right to be forgotten' 删除用户记录删除数据库设计中的参照完整性?

标签 sql referential-integrity

我目前正在审查一个数据库设计,以处理用户记录的删除,以处理 DPA 和 EU GDPR 被遗忘权等要求,建议不在用户之间强制执行参照完整性记录和“相关”表,例如事务、通信事件等,以便在请求时可以删除用户记录,但相关表中的记录(使用非识别键/序列号)将保持不变。

因此,在我对此进行反驳并展开随后的“讨论”之前,我想知道是否有人认为在这种情况下删除或不使用参照完整性是可以接受的,或者是否应该使用其他方法被使用 - 例如屏蔽用户详细信息,或将用户记录更改为占位符记录以表明交易与已编辑用户相关。

欢迎所有想法...

最佳答案

这是一个超出参照完整性约束的复杂主题。

我对欧盟隐私限制的理解(我强调我不是律师)是它们涉及个人身份信息,而不是业务相关的“匿名”关系。例如,我认为您仍然可以将已删除的用户在活跃期间计为“活跃”;你根本不知道他们是谁。

我的方法是将所有 PII 数据放入一个表/数据库中。当用户希望被遗忘时,我会更新记录以删除 PII。所有的外键关系都很好。您只是缺少姓名、地址、电子邮件地址以及其他任何被视为 PII 的内容。

仅仅识别 PII 是非常棘手的,因为电子邮件地址和用户名等可以嵌入到最不寻常的地方(URL 是一个显而易见的地方,但也可以有其他地方)。

我不建议从所有数据库中实际删除此人的所有踪迹。然后您将处于您的报告不再平衡的情况。 . .哦,我们的报告说我们当时有 1,000,000 位客户,但我们只能找到其中的 999,900 位。让我们浪费一堆人的努力来弄清楚发生了什么。

我的建议:要小心。这是一个漫长的过程,并相应地在您的组织中设定期望。

关于sql - 是否可以为 'right to be forgotten' 删除用户记录删除数据库设计中的参照完整性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39936557/

相关文章:

mysql - 从 sql 列表

mysql - 哪些数据库可以运行以下 SQL?

sql - Sql如何只返回所有重复的条目

JSON 数组上的 MySQL 通配符

python - 如何检查 Cerberus 中的引用完整性?

sql - 更新中ReadCommitted和可重复读取隔离级别之间的区别

sql - PostgreSQL:删除从另一个表引用的行

mysql - 使用 infile 时出现引用完整性错误,但使用 mysql CLI 时没有错误

sql - MYSQL 中多态关联的最佳实践

database - 具有参照完整性的 NoSQL/RDBMS 混合体(删除级联)?