如何查找标识一组数据中唯一行所需的最小字段

时间:2012-01-24 17:25:58

标签: database

说我有一些关于某些人的数据。这可能包括名称,DOB,地址,电子邮件等...假设此数据上没有唯一标识符(如id列),但也假设没有重复行。我需要弄清楚我可以用来查询该数据并返回唯一行的最小字段集。

解决方案的一个示例是:“我可以创建一个指定名字,dob,电子邮件和zip的查询,这将返回一行或零行。”

我是否以某种有意义的方式提出这个问题?我正在寻找一种技术,算法或软件包,可以解决给定数据集的这个问题。任何可以提供答案的东西都可以。谢谢!

示例数据(真实的东西要复杂得多):

FNAME        LNAME         DOB          ZIP       email

John         Smith         1/1/12       77777     dude@fake.com
Sean         Smith         1/2/08       77777     dude@fake.com
Sean         William       4/2/07       77789     stuff@fake.com
Richard      Ross          1/1/12       78989     foo@fake.com

这组数据的解决方案是(FNAME,LNAME)或(EMAIL,DOB)或(EMIAL,FNAME)。

1 个答案:

答案 0 :(得分:1)

我认为你需要一种迭代的方法。

也许你可以从每一列开始,并尝试创建一个唯一的索引。

如果你有成功,那就完成了。

如果您无法创建唯一索引,请添加另一列并重试。

为所有列执行此操作,直到您可以成功生成索引。