Database design 用户和好友列表关系的数据库设计
我创建了一个数据库设计 描述 一个用户可以向另一个用户发送一个朋友请求,所以这里:我们有一个包含发送者和接收者id的表友谊 每个友谊都可以是一个或多个友谊列表的一部分(就像Google+一样)…一个用户可以将另一个用户添加到一个或多个列表(多对多关系),这就是为什么我添加了表FRIENDLIST\u FRIENDLIST 但是,另一方面,如果发件人将收件人添加到标记为“家庭”的“朋友列表”中,并不意味着“发件人”也将添加到标记为“家庭”的收件人的“朋友列表”中 这是因为每个用户都有自己独立的朋友列表,所以要了解朋友列表,我们必须先了解用户 但是这个设计导致了一个封闭的和不方便的关系,正如你所看到的,我想我在这里有一些设计问题Database design 用户和好友列表关系的数据库设计,database-design,uml,datatables,modeling,Database Design,Uml,Datatables,Modeling,我创建了一个数据库设计 描述 一个用户可以向另一个用户发送一个朋友请求,所以这里:我们有一个包含发送者和接收者id的表友谊 每个友谊都可以是一个或多个友谊列表的一部分(就像Google+一样)…一个用户可以将另一个用户添加到一个或多个列表(多对多关系),这就是为什么我添加了表FRIENDLIST\u FRIENDLIST 但是,另一方面,如果发件人将收件人添加到标记为“家庭”的“朋友列表”中,并不意味着“发件人”也将添加到标记为“家庭”的收件人的“朋友列表”中 这是因为每个用户都有自己独立的朋
你认为这里出了什么问题?好的,我找到了一个解决方案……不再有问题了 因为桌上的友谊会为每一种友谊关系保留两个记录(两个罗数) 例如: 餐桌友谊
friendship_id | user_id | other_user
1 1 2
2 2 1
表格好友列表
friendlist_id | label
1 friends
2 family
3 work
friendship_id | friendlist_id
1 2
1 3
2 1
表友谊\u友谊列表
friendlist_id | label
1 friends
2 family
3 work
friendship_id | friendlist_id
1 2
1 3
2 1
这样,我不需要表用户和表friendlist之间的关系,因为我将在表friendlist中使用user\u id
,以了解当前friendlist所属的用户
新设计将是:
谢谢你好的,我找到了一个解决方案……没有问题了 因为桌上的友谊会为每一种友谊关系保留两个记录(两个罗数) 例如: 餐桌友谊
friendship_id | user_id | other_user
1 1 2
2 2 1
表格好友列表
friendlist_id | label
1 friends
2 family
3 work
friendship_id | friendlist_id
1 2
1 3
2 1
表友谊\u友谊列表
friendlist_id | label
1 friends
2 family
3 work
friendship_id | friendlist_id
1 2
1 3
2 1
这样,我不需要表用户和表friendlist之间的关系,因为我将在表friendlist中使用user\u id
,以了解当前friendlist所属的用户
新设计将是:
谢谢你好的,我找到了一个解决方案……没有问题了 因为桌上的友谊会为每一种友谊关系保留两个记录(两个罗数) 例如: 餐桌友谊
friendship_id | user_id | other_user
1 1 2
2 2 1
表格好友列表
friendlist_id | label
1 friends
2 family
3 work
friendship_id | friendlist_id
1 2
1 3
2 1
表友谊\u友谊列表
friendlist_id | label
1 friends
2 family
3 work
friendship_id | friendlist_id
1 2
1 3
2 1
这样,我不需要表用户和表friendlist之间的关系,因为我将在表friendlist中使用user\u id
,以了解当前friendlist所属的用户
新设计将是:
谢谢你好的,我找到了一个解决方案……没有问题了 因为桌上的友谊会为每一种友谊关系保留两个记录(两个罗数) 例如: 餐桌友谊
friendship_id | user_id | other_user
1 1 2
2 2 1
表格好友列表
friendlist_id | label
1 friends
2 family
3 work
friendship_id | friendlist_id
1 2
1 3
2 1
表友谊\u友谊列表
friendlist_id | label
1 friends
2 family
3 work
friendship_id | friendlist_id
1 2
1 3
2 1
这样,我不需要表用户和表friendlist之间的关系,因为我将在表friendlist中使用user\u id
,以了解当前friendlist所属的用户
新设计将是:
谢谢正确
- 您不需要限定/确定任何组(friendlist)的所有权或直接参与,因为每个(和每个)用户都有完全相同的列表(或组),并且他/她仅通过友谊关系参与(关联)一个或多个友谊组(列表)(较低的关联实体)(实现自我关系的实体) 因此,正如您正确地重新思考的那样,用户和友谊列表之间不需要关系! 这将是多余的,甚至会带来诸如这种“过度关系”建模之类的问题,因为知道哪些组是某个用户的问题更像是处理数据(查询)的问题。 注:我唯一的建模注意点是,用户和友谊之间的简单0..N关系可以通过两个简单的用户关系更好地表示(作为替代建模),以显示作为另一个用户的用户来自同一实体(表)
- 您不需要限定/确定任何组(friendlist)的所有权或直接参与,因为每个(和每个)用户都有完全相同的列表(或组),并且他/她仅通过友谊关系参与(关联)一个或多个友谊组(列表)(较低的关联实体)(实现自我关系的实体) 因此,正如您正确地重新思考的那样,用户和友谊列表之间不需要关系! 这将是多余的,甚至会带来诸如这种“过度关系”建模之类的问题,因为知道哪些组是某个用户的问题更像是处理数据(查询)的问题。 注:我唯一的建模注意点是,用户和友谊之间的简单0..N关系可以通过两个简单的用户关系更好地表示(作为替代建模),以显示作为另一个用户的用户来自同一实体(表)
- 您不需要限定/确定任何组(friendlist)的所有权或直接参与,因为每个(和每个)用户都有完全相同的列表(或组),并且他/她仅通过友谊关系参与(关联)一个或多个友谊组(列表)(较低的关联实体)(实现自我关系的实体) 因此,正如您正确地重新思考的那样,用户和友谊列表之间不需要关系! 这将是多余的,甚至会带来诸如这种“过度关系”建模之类的问题,因为知道哪些组是某个用户的问题更像是一个过程问题
- 正确
- 正确