userinfoid user_id user_pass
0 xx xx我把id作为主键,问一下 这个id是不是对于的?就直接是这样,把user_id作为主键
user_id user_pass
xx xx这2种方式那种好啊??另外,用户好友表,user_id buddy_id
1 2
2 1这是另外个表 这样建立的话,好像数据就冗余了
因为1是2的好友,同样2也是1的好友。
如果只保留一个(1和2 2和1是相同的之要一个)的话,
那么每次查询时就需要判断这2个字段。
不知道那种方法好啊
各位大哥 大姐给点建议啊、
0 xx xx我把id作为主键,问一下 这个id是不是对于的?就直接是这样,把user_id作为主键
user_id user_pass
xx xx这2种方式那种好啊??另外,用户好友表,user_id buddy_id
1 2
2 1这是另外个表 这样建立的话,好像数据就冗余了
因为1是2的好友,同样2也是1的好友。
如果只保留一个(1和2 2和1是相同的之要一个)的话,
那么每次查询时就需要判断这2个字段。
不知道那种方法好啊
各位大哥 大姐给点建议啊、
2.user_id buddy_id
buddy_id是各user_id用分隔符连起来的字符串
2.user_id buddy_id
0 1,2,6,7,5
分隔符是,号这样做比较好吗?这样做的话每次都要去解析字符串呀~
其次,如果按1,2都有关联只作一条记录,这样虽然降低了一定的冗余,但在分析好友的情况复杂
相比以上两种情况,用分隔符比较合适,它可以单向判断谁是谁的好友,至于解析字符串那有很多方法
如果判断0有多少好友,你可以找找split函数,如果判断6是不是0的好友,可以charindex
查找好友 先取出来 再split
添加好友 先取出来 再update2.user_id buddy_id
0 1,2,6,7,5
2 0,1,3,5,7那这样还是有冗余
0里有2 2里有0
那这样user_id buddy_id是单独建立一个表 还是直接加在表1里面好?1. user_id user_pass
x x x x