none
数据库设计询问:varbinary 该在什么场合使用 RRS feed

  • 问题

  • 数据库里面的varbinary字段类型我很少使用! 不过我现在使用了! 感觉有点麻烦! 想问问各位,给点建议和意见吧,感谢!

    场景:

    Table: UserInfo:用户表

    Filed: id int , name , age , gender

    Table: UserFriend :好友表

    Filed: id int, userId int

    说明:UserFriend表的UserId引用UserInfo表的Id , 如果一个用户有100个好友,则这一个人就有100条数据! (感觉这样不是很好)

    2.

    Table: UserFriend :好友表

    Filed: id int, userFriendIdStr nvarchar(max)

    说明:这种方式保存好友Id格式为:1,2,3,4...       这样的话,一个用户无论有多少个好友,只有一条数据!(感觉不上面的好些),当然也可以把userFriendIdSt字段放在userInfo表里面

    3.Table:UserInfo

    Filed: id int ,name,age,gender ,FriendIds nVarBinary(max)

    说明: 使用这种方式,我希望把朋友Id放在一个List<int>集合里面,把他序列化为二进制流保存到FriendIds里面.而使用的时候每次反序列为List<int>.

    //序列化为流

    using (MemoryStream ms = new MemoryStream())
    {
       BinaryFormatter bf = new BinaryFormatter();
       bf.Serialize(ms, obj);
       byte[] byteArr = ms.ToArray();
       return byteArr;
    }

    //还原为对象

    using (MemoryStream ms = new MemoryStream(bytes))
                {
                    BinaryFormatter bf = new BinaryFormatter();
                    Object obj = bf.Deserialize(ms);
                    return (T)obj;
                }

    如果使用nVarBinary字段的话,在写T-sql或者存储过程的话,我感觉一些逻辑处理不了,比如对方是否已经为我的好友.等等...

     

    向这种情况,各位是如何处理的呢? 你们有什么好的意见呢?

     

    非常感谢各位!:)

     

     

     

     

     

     


    Anything Is Possible !
    2010年5月17日 10:03

全部回复