有人可以告诉我用户注册系统的数据模型,用户可以收藏或黑名单(禁止)彼此吗?我正在寻找最好的方法,但直到现在都没有人很好地回答我的问题。最好的方法我的意思是我们加入的人较少用于编程。
到目前为止我的用户表
uid(pk) | name | family | blah blah blah ..
我只是不知道如何设计这个我们只有一个或更少加入的收藏夹和黑名单?
我认为这一定是一对多的关系,但我应该如何设计呢?
最佳答案
你可以有第二个表列出黑名单和/或收藏夹
表格 编号(pk) | userid_src(fk) | userid_dst(fk) |类型
如果用户 A 将用户 B 列入黑名单,然后用户 A 收藏了用户 C,并且用户 B 和 C 相互收藏,您将拥有此代码,其中 A 是 id 1,B id 2 和 C id 3
id(pk) | userid_src(fk) | userid_dst(fk) | type
1 | 1 | 2 | blacklist
2 | 1 | 3 | favourite
3 | 2 | 3 | favourite
4 | 3 | 2 | favourite
编辑:检索每个用户的信息:
SELECT * from users
LEFT JOIN users_connections as con ON users.uid = con.userid_src
LEFT JOIN users as userCon ON userCon.uid = con.userid_dst
WHERE users.id = XXX
XXX 将是您当前用户的 ID。然后,您将检索当前用户与他列入黑名单或添加为收藏夹的每个用户之间的每个连接。
关于mysql - 具有黑名单和收藏夹的用户注册系统的数据模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13660708/