我正在开发在线购物车系统,我有物品和item_options表。更新信息时插入新记录?
每个物品可以有一个或多个选项,请参见下文。
项目表
- ITEM_ID(PK)
- ITEM_NAME
- ITEM_DESCRIPTION
注:商品价格都在item_options表
item_options表
- option_id(PK)
- ITEM_ID(FK)
- OPTION_NAME
- option_price
当顾客下了订单,则数据将被添加到顺序和ORDER_ITEMS表。
订单表
- orders_id(PK)
- CUSTOMER_ID(FK)
- address_address_id
- date_purchased
- orders_status
- orders_date_finished
ORDER_ITEMS表
- orders_items_id(PK)
- orders_id(FK)
- ITEM_ID(FK)
- item_option_id(FK)
还有一个问题,如果员工更改价格,项目名称或删除项目..客户发票将受到影响,因为FK来自order_items wi将不再存在于项目表中。这有什么解决办法?
该解决方案如何:在items
和item_options
表中添加活动字段。当工作人员想要更改物品的价格或名称时 - 只需将当前活动记录变为0(items.active
),然后插入一条新记录和新信息,并激活成为1.旧订单仍指向正确的不活跃的条目。这是做这件事的好方法吗?
将新信息插入到项目表中后,是否意味着我必须更新/更改item_id.item_options
表中的新PK ID?
谢谢。在关于数字2.即使我没有改变选项名称或价格...我需要获得option_name和option_price的价值第一?然后用新的item_id插入到item_options中? – user622378 2011-04-24 14:06:43
是的,我相信你会需要,因为这是现在与新的记录(项目)链接。除非我不能正确理解你的问题... – judda 2011-04-24 14:12:45
我会重新解释我的问题,只是为了确保:)如果我只改变items.item_name和items.item_description的值..我仍然需要添加新的记录item_options表,即使我没有改变item_options.option_price的值? – user622378 2011-04-24 14:31:21