【问题标题】:Tracable anonymous recurring records可追溯的匿名重复记录
【发布时间】:2018-01-30 12:03:32
【问题描述】:

我有一个用户定期填写调查问卷的应用程序。

调查是通过电子邮件发送的,并且需要是半可追踪的,这意味着我需要遵循在每次调查中向每个用户发送什么样的问题类别。现在,在回答完调查后,答案会保存在单独的表格中,并且会删除与特定用户的任何关联以保证匿名。

我想要实现的是一种无法将任何 anwser 与特定用户映射但可以获得任何一个用户提交的所有答案的方式。我们希望这样做是为了分析目的,以跟踪用户的答案如何随时间变化,但同时在数据库级别保持完全匿名。

用户使用多个设备填写调查表,因此不能选择将私钥存储在他们的设备上。

应用程序是用 Rails 和 PostgreSQL 编写的,但如果在 ruby​​ 中不可能,该解决方案也可以涉及其他语言。

【问题讨论】:

  • 用户在填写调查表之前是否使用了一些标识符?...您无法猜测用户并确定是他。所以你需要一个标识符。为了匿名,您需要在标识符和真实姓名(照片、电子邮件、任何真实信息)之间没有关系
  • 用户与调查对象之间存在关系。但是一旦按下“提交”按钮,答案就会保存在与用户无关的单独表格中。我的猜测是可以使用某种智能“散列”。
  • 你当然可以散列任何东西,但是如果你破坏散列和原始用户之间的关系 - 用户如何返回?..
  • 该解决方案能否要求用户参考之前电子邮件中的确认码?
  • @AbeVoelker 不。它不应该涉及用户做任何事情。

标签: ruby-on-rails ruby postgresql


【解决方案1】:

其中一个简单的解决方案是将一组固定的用户数据输入哈希函数以计算该用户的标识符,并将其与答案一起保存到单独的表中。

这样您就可以收集每个用户的所有提交,但与用户记录无关。

一个缺点是,如果您仍然需要它,您可以通过计算“用户”表的所有哈希并将其与“答案”表相关联来跟踪用户。除非您将“用户”或“答案”实体的控制权交给另一个团队/业务部门等。

【讨论】:

  • 是的,这是我的第一个想法,但你提到的缺点正是我不能使用它的原因。因为你可以逆转它。
  • 归根结底,在您控制管理(和标记)答案的系统之前,您将始终能够建立关联。不过,如果有解决方案就好了!
猜你喜欢
  • 2021-06-09
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
相关资源
最近更新 更多