怎么设计表:
有个商品基本信息表商品编号,商品名称,价格进货主表
进货明细表
进货明细表中,有商品编号字段
想问的就是 进货明细表中,要不要 商品名称 字段????
还是说 我不要商品名称字段 通过连接商品信息表 显示出名称就好?????
有个商品基本信息表商品编号,商品名称,价格进货主表
进货明细表
进货明细表中,有商品编号字段
想问的就是 进货明细表中,要不要 商品名称 字段????
还是说 我不要商品名称字段 通过连接商品信息表 显示出名称就好?????
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)好象不行呀.
建议要,不然以后商品删除了怎么显示名称?订单既然生成了,明细表里的商品名称就不能变。
如果订单已经产生,这时有人将商品A改成商品B,那么是不是客户就变成购买商品B么?虽然从第几范式来讲不能要,但是有时需求就是这样的,不要的话后期维护会出问题,在查询历史数据时会出问题。
那么我操作的界面是,adoqueryDetail中 写的是select * from v_pro我修改数量列 或者 添加记录 然后post之后,好象不对呀!!!!!!!!