所以,我正在尝试实现像Facebook Friend Request这样的东西。
让我们说用户X收到来自用户Y的朋友请求(uid:1001)。如果用户X接受请求,则用户Y进入Friends_tbl
因此,在这种情况下,最好的办法是将请求存储到表中,例如 架构为
的friend_request
CREATE TABLE friend_request (
request_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
from_uid INTEGER,
is_accepted INTEGER
);
所以,让我们说第一次进入数据库将是
INSERT INTO friend_request(from_uid, is_accepted) VALUES (1001, 0);
现在,当用户X打开他的朋友请求收件箱时,他将看到来自from_uid 1001的请求。
现在,考虑两个选项:
1。)用户X接受请求。然后,我需要将查询更新为friend_request
,is_accepted
为1。困难的部分是如果is_accepted
为1.那么我想将from_uid
添加到Friends_tbl
,因为现在那个人将成为用户X的朋友。我怎么能动态地做到这一点?
2.)用户X拒绝请求。那我该怎么办?我应该删除进入friend_request表的条目,以便它不会显示在用户X收件箱中,或者您有其他方式吗?
答案 0 :(得分:1)
更改friend_request
表:
CREATE TABLE friend_request (
from_uid INTEGER,
to_uid INTEGER -- add this column
is_accepted INTEGER
);
对于1)你应该做类似的事情:
update friend_request
set is_accepted = 1
where from_uid = <from-user-id>
and to_uid = <to-user-id>;
insert into friends_tbl (id, friend_id)
values (<from-user-id>, <to-user-id>);
对于2)您可能希望将请求标记为已拒绝(值2?):
update friend_request
set is_accepted = 2
where from_uid = <from-user-id>
and to_uid = <to-user-id>;
这样一来,如果同一个人想再次与你交朋友,你就可以知道它是否已被拒绝,甚至不会再次处理这个请求。