假设人名是独一无二的,但现在必须区分

时间:2014-04-17 15:22:42

标签: sql normalization

几个月前,我的一些同事收到了一份xls,其中包含员工的姓名(和其他数据),然后在我们提供SAS的公司工作。在这个名单中有两个人,他们奇迹般(或不是)具有完全相同的名字。我打电话给他们 John Doe Woo

第一个问题发生在两个星期前:因为他们两个都没有(不要问我们他们公司的HR人员或他们的人员没有注意到)相同的电子邮件 jwoo@cpny.com ,并且有一些查询在此特定字段中使用distinct子句,我们必须将客户端调用 demand 他们的电子邮件发生了变化最后,其中一人最终致电 jdoe@cpny.com

昨天发生了第二个问题。我们注意到,我们不会将distinct子句用于电子邮件字段,还会用于名称字段(在其他字段中)查询)。所以,鉴于以下事实: a)我无法在不花费大量时间(和金钱本身)的情况下改变查询 b)我无法以任何可见方式更改其名称 c)(a)的结果):避免错误的唯一方法是改变他们的名字 数据库 d)我需要以任何方式更改名称。

我有什么选择?

2 个答案:

答案 0 :(得分:1)

您可以为名称添加空格,或使用大写字母区分两者......

我会用大写字母:
一个是" John Doe Woo"和另一个" Joh doe Woo" 你也可以使用" - " " John-Doe Woo"和" john Doe Woo" ...

但是 - 很明显,这不是你应该做的,
你应该修复数据库设计..

答案 1 :(得分:1)

  1. 更改数据:区分名称。
  2. 更改数据库:修改表格和/或查询
  3. 更改数据,但无形
  4. 有一种方法可以为管理层做出决定。我不认为你有一个可行的替代方案来进行演示。

    编辑: 我向Sarcasm Strike提出了最后一个选项 - 虽然表示我不认为这是一个不错的选择。显然这是你实际走的方向,所以让我说我很高兴你找到了解决方案并祝你万事如意。