怎么设计表:
有个商品基本信息表商品编号,商品名称,价格进货主表
进货明细表  
进货明细表中,有商品编号字段
 
想问的就是 进货明细表中,要不要 商品名称 字段????
还是说 我不要商品名称字段  通过连接商品信息表  显示出名称就好?????

解决方案 »

  1.   

    product(proID,proName) 
    purchaseM(purID) 进货主表
    purchaseD(purID,proID,proNum) 进货明细表 
    假设明细表中不需要商品名称字段,但是显示的时候又需要
    这时我想建个视图 v_pro:select a.purID,a.proID,b.proName,a.proNum
                         from purchaseD a left outer join product b on a.proID=b.proID
    (用的是delphi)
    在操作界面,使用adoquery,datasource,dbgrid控件,
     adoqueryMaster:select * from purchaseM
     adoqueryDetail:select * from v_pro (明细表的显示用视图v_pro)明细内容通过dbgrid来显示,但是问题是:
    我在dbgrid中编辑proNum列的内容,编辑完之后,因为是对视图的数据集在编辑,追加
    adoqueryDetail.Edit,或者adoqueryDetail.Append
    然后adoqueryDetail.Post的时候,应该会出错吧???因为在查询分析器中对视图执行insert v_pro values('进货单号','商品编号1','商品名称1',10)好象不行呀.
      

  2.   


    建议要,不然以后商品删除了怎么显示名称?订单既然生成了,明细表里的商品名称就不能变。
    如果订单已经产生,这时有人将商品A改成商品B,那么是不是客户就变成购买商品B么?虽然从第几范式来讲不能要,但是有时需求就是这样的,不要的话后期维护会出问题,在查询历史数据时会出问题。
      

  3.   

    如果进货明细表中不要商品名称字段
    那么我操作的界面是,adoqueryDetail中 写的是select * from v_pro我修改数量列  或者 添加记录  然后post之后,好象不对呀!!!!!!!!