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个字段。
不知道那种方法好啊
各位大哥 大姐给点建议啊、

解决方案 »

  1.   

    1.user_id  user_pass
    2.user_id  buddy_id
    buddy_id是各user_id用分隔符连起来的字符串
      

  2.   

    @chuifengde(树上的鸟儿) 你的意思是:
    2.user_id  buddy_id
      0         1,2,6,7,5
    分隔符是,号这样做比较好吗?这样做的话每次都要去解析字符串呀~
      

  3.   

    首先,如果每一个是好友的都建一条记录,这样冗余度太大了
    其次,如果按1,2都有关联只作一条记录,这样虽然降低了一定的冗余,但在分析好友的情况复杂
    相比以上两种情况,用分隔符比较合适,它可以单向判断谁是谁的好友,至于解析字符串那有很多方法
    如果判断0有多少好友,你可以找找split函数,如果判断6是不是0的好友,可以charindex
      

  4.   

    我明白你的意思了 
    查找好友 先取出来 再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