目前网站开发中需要设计一个产品的表,设计的时候要考虑到产品表的通用性,就是无论添加哪种类别的产品都不用去改动数据库,因为不同类别的产品属性是不一样的,属性个数也不同,所以设计了一个可以自定义属性的表来增加产品的属性。产品表
pid  cid   pname
 1    1    2g内存
 2    2    时尚衬衫产品类别表
cid  cname
 1   电脑
 2   服装属性表
aid cid aname
 1   1  品牌
 2   2  季节属性值表
vid aid vname
 1   1  金士顿 季节表
sid  sname
 1  2010春季
 2  2010夏季
 3  2010秋季
 4  2010冬季以上就是大概的表设计,这样看上去好像没问题,可如果我现在添加的是服装类的产品,但是服装类需要有季节这个属性,而季节会有一个独立的表来存放季节名称,所以在填写自定义属性值的时候就不知道如何让填写的值和季节表关联起来,我不可能让添加人员直接填写季节的id值吧请问有没有办法去判断属性值跟其他表关联起来,这样就能在填写的时候弄成一个select框给添加人员直接选择了或者有更好的表设计方法如果上面问题解决了,还有一个问题,就是如果季节对应的是多选的呢?要如何解决,就是说季节这个属性可以多选,既可以选春季和秋季好难的问题

解决方案 »

  1.   

    在服装类产品属性添加页面中,添加服装季节属性的时候,为该文本框增加一个onfocus事件,弹出一个隐藏层,隐藏层中用checkboxlist列出所有季节选项,客户选择后,绑定到你的文本框中,在客户选择的时候,你就可以获得季节的ID了。
      

  2.   

    产品表 + 属性表 + 属性值表
    产品表里就包括一些产品的公共属性
    属性表里设置私有属性的名称   
    属性值表里就是每个产品私有属性的值
    商品表如ID,名称
    属性表如ID,属性名称,类型
    商品属性表如商品ID,属性ID,值
      

  3.   

    如果你做的是C/S程序,季节名称和季节值的关联是比较简单的,使用ComboBox的DataSource属性为季节表,DisplayMember设置为sname,ValueMember设置为sid就可以,关于添加多个季节的问题我觉得还是应该在设计表时考虑一对多联系的问题