我创建了一个数据库设计
用户可以向其他用户发送好友请求,所以这里:我们有一个FRIENDSHIP表,其中包含发件人和收件人的ID。
每个友谊,都可以成为一个或多个朋友的一部分(就像Google+一样)......用户可以将另一个用户添加到一个或多个列表(多对多关系),这就是我添加表格FRIENDSHIP_FRIENDLIST的原因。
但是,另一方面,如果发件人将收件人添加到标有“家庭”的“FRIENDLIST”中,则并不意味着“发件人”将被添加到标有“家庭”的收件人的“FRIENDLIST”中“也是。
这是因为每个用户都有自己独立的朋友列表,所以要知道好友列表,我们必须先了解用户。
但是如你所见,这种设计导致了一种封闭且不方便的关系,我认为我在这里遇到了一些设计问题。
你觉得这里有什么问题?
答案 0 :(得分:1)
正确!
答案 1 :(得分:0)
由于表友谊将为每个友谊关系保存两个记录,(两个原始)。
例:
表FRIENDSHIP
friendship_id | user_id | other_user
1 1 2
2 2 1
TABLE FRIENDLIST
friendlist_id | label
1 friends
2 family
3 work
TABLE FRIENDSHIP_FRIENDLIST
friendship_id | friendlist_id
1 2
1 3
2 1
这样,我不需要表用户和表friendlist之间的关系,因为我将在表FRIENDSHIP中使用user_id
来了解当前friendlist所属的USER。
新设计将是:
谢谢