查找一个用户的潜在好友 即A的好友BCDEF皆有G而A却没有则把G推荐给A
用数据库实现:
首先要设计表
CREATE TABLE USER
(
ID INTEGER (PK),
.......
);
CREATE TABLE RELATIONSHIP
(
ID INTEGER (pk),
IDA INTEGER (fk),
IDB INTEGER (fk)
);
查询SQL语句:
在实际情况中,把数据简单存储在单一数据库中几乎不太可能,可以建立类似<A,B> <B,C>...的键值对,存储在文件中,然后采用一个函数来处理,可以用到map
用数据库实现:
首先要设计表
CREATE TABLE USER
(
ID INTEGER (PK),
.......
);
CREATE TABLE RELATIONSHIP
(
ID INTEGER (pk),
IDA INTEGER (fk),
IDB INTEGER (fk)
);
查询SQL语句:
SELECT b.IDB, COUNT(b.IDB)
FROM RELATIONSHIP a, RELATIONSHIP b
WHERE a.IDB = b.IDA
AND b.IDB NOT IN
(SELECT c.IDB
FROM RELATIONSHIP c
WHERE c.IDA=a.IDA)
AND b.IDB != a.IDA
AND a.IDA = &1
GROUP BY b.IDB
HAVING COUNT(b.IDB) > 3
ORDER BY COUNT(b.IDB) DESC
在实际情况中,把数据简单存储在单一数据库中几乎不太可能,可以建立类似<A,B> <B,C>...的键值对,存储在文件中,然后采用一个函数来处理,可以用到map