在游戏中需要保存好友列表,每个玩家最多可以有1000个好友,每个玩家的数据中包括账号,昵称,年龄,性别,其中玩家可以通过昵称来搜索到其他玩家,请设计一个数据库来保存每个玩家信息和对应该玩家的好友列表信息,要求:
1、 要保证数据库在搜索指定玩家的好友列表信息时的效率;
2、 不浪费数据库的存储空间;
3、 对于需求的改变要有很强的适应力,如好友列表的上限从1000变为2000,玩家的数据中新增加一项身份证号。
答案请提供用于建立表的SQL语句和查询指定昵称玩家的所有好友信息,并标记出是在哪个数据库平台上做的测试。哪位大哥知道的教下 谢谢了

解决方案 »

  1.   

    如果采用3楼的方案,将可以参考如下示例:
    --设置上限值
    create table t_SetNum(a int)
    insert t_SetNum select 1000go
    --得到上限值
    create function f_getNum()
    returns int 
    begin
        declare @s int
        select @s=a from t_SetNum
        return @s
    end
    go
    --建玩家表时可以创建好友列表字段(用逗号将好友id隔开)的约束
    create table t_User(账号,昵称,年龄,性别 等字段,好友列表 varchar(2000) check(len(好友列表)-len(replace(好友列表,',',''))<dbo.f_getNum())