用户注册系统的数据模型有黑名单和favitelist?

时间:2012-12-01 15:08:57

标签: mysql database-design

有人可以向我展示用户可以收藏或黑名单(禁止)的用户注册系统的数据模型吗?我正在寻找最好的方法但是直到现在还没有人回答我的问题。最好的方式我的意思是我们加入的人少了用于编程。

我的用户表到现在为止

uid(pk) | name | family | blah blah blah ..

我只是不知道如何设计这个我最喜欢的黑名单和黑名单?或者更少?

我认为它必须是一对多的关系,但我该如何设计呢?

2 个答案:

答案 0 :(得分:2)

你可以在第二张表中列出黑名单和/或收藏夹

表 id(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。然后,您将检索当前用户与他列入黑名单或添加为收藏的每个用户之间的每个连接。

答案 1 :(得分:2)

查找现成数据模型的一个地方是databaseanswers.com。这是编制其数据模型的页面。

http://www.databaseanswers.org/data_models/index.htm

社交网站上有一个部分,但它非常稀疏。