我一直在社交网站上工作。这里用户请求另一个用户成为他的朋友(朋友请求)。我想到了一个“朋友”表看起来像社交网站的朋友桌
Table Name: Friends
Coloumns :
User1 - Int - FK
User2 - Int - FK
Request - Enum('0','1')
Time - DateTime
PK - (User1, User2)
在请求字段“0”时,请求由用户1发到用户2,当请求已获得用户2“1”被存储在存储中。
问题出现在我想要检索用户的所有朋友时。我必须每次检查请求字段是否为'0'或'1'。还有另一种方法可以做到吗?如果我有另一张存储朋友请求的所有细节的表,会更好吗?
为什么这是一个问题?它不应该只要你有请求字段索引。做一个像SELECT * FROM friends WHERE User1 = XX和Request = 1'这样的查询应该没问题。 – 2012-08-13 17:49:51
@MikeBrant如果User1是User2的好友,那么User2也是User1的好友。因此,查询将成为'SELECT * FROM WHERE(User1 = XX或User2 = XX)和Request = 1'。不是很复杂吗? – Vicky 2012-08-13 18:09:36