mysql 好友数据表_MySQL好友表

小编典典

假设所有朋友也都在用户表中,则需要一个朋友表,该表定义了简单的一对多关系-将用户表链接回自身。所以

User Table

UserID int identity not null

[other attribute fields]

Friends Table

UserIDLink1 int

UserIDLink2 int

[other attribute field]

其中UserIDLink1和UserIDLink2都是Users表上的外键。

例如,如果我有三个用户

1 Joe

2 Bill

3 Jane

并且Joe和Jane是朋友,那么Friends表将只包含一行

1 3

上面的内容隐含地假设,如果A是B的朋友,那么B是A的朋友-

如果不是这种情况,您可能希望将UserIDLink1和UserIDLink2重命名为UserID和FriendID或类似的名称-

在这种情况下,也有两倍的记录。

同样对于双向配置(如果B是A的朋友,则A是B的朋友),还应在Friends表上为(UserIDLink1,UserIDLink2)和(UserIDLink2,UserIDLink1)设置索引,以确保在以下情况下访问始终有效我们正在搜索joe的朋友或jane的朋友(如果您未设置第二个索引,则第一个查询将是有效的索引查找,但第二个查询将需要全表扫描)。

如果您的链接不是双向的,则不必找出A的朋友,但您仍然可能最需要它,因为您可能还需要找出B的朋友。

2020-05-17

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值