我想建一个产品库表,表中多项是id关联,这样是不是在查询时会涉及多个表,这样是不是效率很低,这种情况应该如何建表结构呢?

解决方案 »

  1.   

    把老网站数据库做一个升级,原网站数据库情况如下:
    sql2000,是一些it产品的展示网站,用户后台有对报价的一些操作功能(常更新报价的日期字段)
    主要表结构如下:
    产品表:
    id    名称          
    id    name          
    1     hpdl360       
    2     thinkpad T520 
    ......
    报价表:
    报价id   产品id    报价      数量    日期                 
    pid      id        price     num     date                
    1        1         13572.33  2       2013-01-09:08:12:33
    ......
    目前需要的改动:
    产品表:
    id    名称            年代   地域   类型    销售类型
    id    name            year   area   class   saletype
    1     hpdl360         2013   2      1       1       
    2     thinkpad T520   2011   1      2       2       地域表:
    aid    name
    1      中国
    2      美国
    类型表:
    cid    name
    1      服务器
    2      笔记本销售类型表:
    sid    name
    1      在售
    2      停产颜色表:
    ccid   name
    1      红
    2      黑
    3      白
    ...产品颜色表:(每个产品有不同的颜色)
    产品id   颜色id
    id       ccid
    1        1
    1        2
    1        3
    2        2
    2        3报价表:(每种产品不同颜色都有相应报价)
    报价id   产品id    报价      数量    日期                 颜色 
    pid      id        price     num     date                 ccid
    1        1         13572.33  2       2013-01-09:08:12:33  2
    ......以上两个表的改动为主要改动类型(主要是对细节属性的划分添加,让数据容易分类查询等)
    想了解什么样的表结构才合理,网站的数据库2G左右,最大的表条数不到20万
      

  2.   

    "表中多项是id关联,这样是不是在查询时会涉及多个表",查询时肯定是基于一张主表,看你查询结果包含哪些属性(使用ID关联的其他表),如果根据ID去查找的字段比较少比如说一个,建议给主表在引用ID的基础上再添加相应的冗余字段(根据ID要查找的那个属性)