我有一个包含一些机密个人信息的数据库。出于数据分析的目的,我想把这些数据发送给一些人。但是,需要保持数据的匿名性。
是否有一种方法可以让我生成假表来进行JOIN,即不是JOIN到具有真实名称的user
表,而是动态生成表fakeuser
并JOIN到该表。
我知道它可以手动完成,但查询不会在整个数据库中的所有用户上运行,动态地完成它会很好,即当查询调用fakeuser
ID 23和ID不存在时,它只是从某个地方选择一个随机名称并填充表和查询。
如果MySQL不够灵活,我愿意通过其他类型的脚本来完成这个
这似乎是一个相当简单的任务,但它涉及几个步骤,我不确定你在哪里卡住了。
您需要一个名称列表,您可以通过生成字母的随机组合(提供不可读的名称)来获得该列表,或者您可以找到名称的公共来源(可能是http://www.listofbabynames.org/)。
然后,您只需要一个循环,通过从列表中随机选择名称,将记录插入到fakeuser表中。您只需要确保在fakeuser中没有将相同的名称分配给不同的记录。这可以通过在选择一个名称时将其从列表中删除来实现。如果列表不够大,您可以生成组合。
我也会仔细考虑@eggyal给出的建议/文章,看看它是否适用于你的情况。我认为,如果你需要一个更好的解决方案,在匿名化数据方面还有很多工作要做。