刚学数据库,好多东西都不懂。
有一些记录拥有多条类似的属性。
一种存储方式是每个属性都保存为单独的一列,另一种方式放在同一列里面,用逗号分隔开。
这两种存储方式,哪种方式效率更好啊,优缺点都是什么啊?
这样说,不知道大家听明白了没有。
先谢谢大家了。

解决方案 »

  1.   

    每个属性都保存为单独的一列
    【优点】:一目了然,数据格式统一,便于统计管理
    【缺点】:扩展性较差,对应新需求需要修改前台代码
    同一列里面
    【优点】:对于前台代码影响较小
    【缺点】:数据管理统计方面,需要投入大量精力
    主要看实际需求,如果变动多,就用后者,如果变动少就用前者。另一个思路:
    是否可以建立一个属性表,属性ID,属性名称。
    然后建立一个记录属性表,记录ID,属性ID,value仅供参考!
      

  2.   


    是否可以建立一个属性表,属性ID,属性名称。 
    然后建立一个记录属性表,记录ID,属性ID,value 多看多练,熟能生巧..
      

  3.   

    这么快就有这么多人回答了啊,谢谢大家了。
    把我现在遇到的情况说得更具体些吧。
    我是做网络游戏的,其中游戏中的武器装备可能会带有多条属性。
    例如 战斧 力量+1,敏捷+1,生命+50
    但是有些装备可能一条属性都没有,有些装备却可能带有多条属性。
    我们现在的做法好像就跟上面朋友的建议有些类似。我们有个属性表来表示属性类别,例如 
    ID  类型
    1   力量
    2   敏捷
    3   生命但是我比较苦恼的问题是,装备表怎么建第一种方式
    ID   名称   属性1类型  属性1值 属性2类型  属性2值  属性3类型  属性3值
    201  战斧      1          1       2           1       3          50  并不是只有3个属性,可能会更多,例如4个,5个以上,所以上面的列不只这些第二种方式
    ID       名称        属性
    201      战斧        1,1;2,1;3,50;这种情况下,哪种方式更好呢
      

  4.   

    不知道可不可以这样
    装备表
    ID 名称属性类型表
    ID 类型属性值表
    ID 属性值 属性类型 装备ID