复杂的应用(算法相关)
有这么一个表 a(username, firstname,secondname, email, address, time, code,country, state)
现在要找出近似度比较高的用户, 从接到这个case发现有史以来难度最大的sql,直觉就是一个算法问题。当前的近似度如下
username 20
firstname
secondname (firstname和secondname联合20)
email 20
address 20
time 0
code 10
country 8
state 2
这是近似度指标值, 例如几个用户如果username都相同,那么这个几个用户都得到20分。如果还是这几个用户的firstname和secondname也都相同,那么他们继续得到20分。如果state都同再得2分。
下面给一个例子
分数 username, firstname,secondname, email, address, time, code,country, state
1 100 li li hai [email protected] aaa 1 china shanghai
2 90 li li hai [email protected] aaa 2 china shanghai
3 58 li li long [email protected] aa 1 china beijing
4 50 li li hai [email protected] b 1 England london
这个例子是我结合需求实现的, 就是将这几个分成一组,id=1 可以看到他的所有值都能在同组记录里找到重复值。
id=2的code=2是在这个组里是找不到的哦,所以减去10分得到90分。
id=3的firstname和secondname联合在这个组里是无法找到重复值,所以先去20分,address再减去20,state再减去2分,最后58;
id=4的同理得到50分。这个表当前几万条记录,首先必须确定分组标准。 (这个标准如何定,算法总体如何设计??)
之后如何实现,开始准备用sql,后来改用临时表存储过程。(实际情况更复杂,是多表关联,我这里大大简化问题)。
还是没有头绪??
有这么一个表 a(username, firstname,secondname, email, address, time, code,country, state)
现在要找出近似度比较高的用户, 从接到这个case发现有史以来难度最大的sql,直觉就是一个算法问题。当前的近似度如下
username 20
firstname
secondname (firstname和secondname联合20)
email 20
address 20
time 0
code 10
country 8
state 2
这是近似度指标值, 例如几个用户如果username都相同,那么这个几个用户都得到20分。如果还是这几个用户的firstname和secondname也都相同,那么他们继续得到20分。如果state都同再得2分。
下面给一个例子
分数 username, firstname,secondname, email, address, time, code,country, state
1 100 li li hai [email protected] aaa 1 china shanghai
2 90 li li hai [email protected] aaa 2 china shanghai
3 58 li li long [email protected] aa 1 china beijing
4 50 li li hai [email protected] b 1 England london
这个例子是我结合需求实现的, 就是将这几个分成一组,id=1 可以看到他的所有值都能在同组记录里找到重复值。
id=2的code=2是在这个组里是找不到的哦,所以减去10分得到90分。
id=3的firstname和secondname联合在这个组里是无法找到重复值,所以先去20分,address再减去20,state再减去2分,最后58;
id=4的同理得到50分。这个表当前几万条记录,首先必须确定分组标准。 (这个标准如何定,算法总体如何设计??)
之后如何实现,开始准备用sql,后来改用临时表存储过程。(实际情况更复杂,是多表关联,我这里大大简化问题)。
还是没有头绪??
'截至2009-09-01 18:13:54 用户结帖率62.24% 总发帖:384 正常结帖:170 未结帖:145 最后一次结贴: 2009-07-06
楼上 我看了以前有人写的sqlserver的 sql 的一本书,书中把sql能用得应用算法。
如果这样, 不用sql, 考虑如何实现算法实现这个应用?