表结构应该是包含以上所有字段,设一个类别的字段,判别他是什么类别的,是书籍类的还是酒类的!如果是书籍类的则它不应该有的字段会失去焦点,不能输入!
同理别的类也如此处理。但数据库里面一定要有所有字段。

解决方案 »

  1.   

    所有商品统一有一个编号,各种商品共有的且常用的属性放在一张表中(主表),其它属性每个种类一张表,用编号与主表相联。可以考虑在主表中加一个字段表示商品所属种类,这样有的时候操作起来比较方便,效率也高一些。
      

  2.   

    对进销存而言,只需要关心相关的主要属性,某些信息可以忽略,或者用子表表示。
    商品表:条形码(PK)、商品种类、名称、单价、供应商(可以为空〕、生产日期(可以为空)、过期日期(可以为空)、备注使用备注放一些对进销存不太重要的信息,比如书号,版本号,出版社,单价,出版日期,作者等。
      

  3.   

    谢谢楼上各位朋友!如果客户要求在程序中自定义商品种类,而这些商品可能具有的属性个数又是不可预见的(有可能需要很多字段,超出原来设置的),那么这个时候我们如果用程序的方式生成新的子表,但是我们的输人输出界面确是事先就做好的固定的了,那么那些多出来的字段该怎么处理才能输入和输出?
    如果有一天对用户说:"很抱歉,我的程序当初设计时就这么几个字段,所以现在你只能卖书和卖酒......" 呵呵,那这样的程序 健壮性和可扩展性可就得大打折扣了.
      

  4.   

    其实采用备注将那些与销售本身无太大关系的属性保存起来是很不错的解决方案如果一定强调可扩展性,那也可以啊商品表:条形码(PK)、商品种类、名称、单价、属性1~20另建表属性对应表:
    商品种类,属性1~20名称赫赫,这样就可以了。关键是解决问题。