日期:2014-05-17  浏览次数:20606 次

有个问题想和大家讨论一下
1.现在做一个人员信息自动合并功能。有A单位和B单位上报人员数据。假如是一些专家信息。不管什么专家都可以上报。现在了A单位上报一个人叫小马 B单位也上报一个人叫小马。现在进去到我系统中我系统中如果没有叫小马的人就直接入库了。而B单位也上报了小马进入到我系统。我系统怎么能够合并这个人的信息实际当中我们知道这个人是同一个人。但也有可能不是同一个人。就是怎么能够自动合并这个人的信息(判断是否是同一个人难点就在这里)。用户上报的时候可能不会输入很多详细的信息比如身份证等等一些或许只输入这位专家的擅长信息和名字性别等等
------解决方案--------------------
必须要有唯一性标识的东西
------解决方案--------------------
上报的时候带上单位名字,同一个单位同名的概率又更小

如果要做到完全不重复,就带唯一编号
------解决方案--------------------
必须要有个主键
------解决方案--------------------
真正业务中,肯定是要有一个唯一性标识来区分的,如名字+身份证号;
确定是否重复人时,该做必录限制就得做。这是你的功能没法做的事,
还有就是象3楼哪样,在业务上允许存在误差的情况下,尽量控制录入条件的精确性,如:名字+机构+部门+ 等等等!
------解决方案--------------------
楼主说的根本不是什么主键问题,而是2条记录的模糊匹配,1楼说的没错,规则可以自己定义,就看你要什么样的东西了,按说这个规则应该定义的严格一些,否则合并了不是同一个人的记录后不太好处理。比如同名、性别相同,或者按匹配项目数,如20个字段,有10个匹配算是一个人。再给字段加上权重,比如普通字段是1,姓名是5,性别是2,姓名+性别都一样是8,依此类推吧
------解决方案--------------------
你先把一个活人怎么识别出这两条信息是需要合并的重复信息弄清楚,再来谈程序
------解决方案--------------------
顶10楼,先搞清楚需求,再谈别的
------解决方案--------------------
一般合并是用身份证,但是具体看业务,需要和客户商量解决
------解决方案--------------------
上报人员数据  填写姓名的时候 AJAX 到数据库判断该用户名是否存在,若存在则提示用户 "XX单位存在此用户,是否合并用户"  如果不合并用户,则可以在名字后面加上单位名或者其他标识来区分