日期:2014-05-20  浏览次数:20792 次

请教数据库程序设计的问题
最近在学管理系统的编程,需要用到数据库,不过遇到一个很严重的问题,所以想请教各位前辈,我的问题是这样的。

比如说订单管理系统,数据库中有客户表,订单表和货物表,三者的关系是这样的,客户与订单是一对多,订单和货物是多对多,但现在遇到的问题是,一旦修改了货物表的价格,就会影响到历史订单的价格,不知道这个问题大家是如何解决的?

谢谢
------最佳解决方案--------------------
引用:
引用:

订单 和 货物 是多对多的。中间肯定有张订单货物表,把订单的当前价格在中间表中保存下来。订单最终确认的时候获取下最新价格就行了。历史订单则不会受到影响。


是不是可以这么理解,对于一些相关的基础数据,可能在后期会变动的,需要一起备份?比如说订单,一旦生成订单的时候,需要将订单中的货物与订单一起进行保存,价格好解决,只要在订单记录中保存一下,但万一货物改名字……


货物名称一般不会改,改了货物名称,说明就不是原来的货物了,应该是新的一种货物。要新建货物。
其实只需要把经常波动的数据进行保存就行了。
------其他解决方案--------------------
订单肯定是有阶段状态的  比如订单一旦最终确认提交后,那么价格应该不被允许改动

而在此之前,用户在提交订单时,查询一下最新价格,更新一下就行
------其他解决方案--------------------
历史订单表是不允许进行更改的。未付款的订单可以提示修改,不过这个要看需求文档了。
------其他解决方案--------------------
那么和订单已经关联的货物记录怎么办?以后也不让修改了?
------其他解决方案--------------------
不让修改的。要不你一修改报价订单对应的价格也跟着修改,那不是乱套了吗
------其他解决方案--------------------
订单 和 货物 是多对多的。中间肯定有张订单货物表,把订单的当前价格在中间表中保存下来。订单最终确认的时候获取下最新价格就行了。历史订单则不会受到影响。
------其他解决方案--------------------
引用:
订单 和 货物 是多对多的。中间肯定有张订单货物表,把订单的当前价格在中间表中保存下来。订单最终确认的时候获取下最新价格就行了。历史订单则不会受到影响。


是不是可以这么理解,对于一些相关的基础数据,可能在后期会变动的,需要一起备份?比如说订单,一旦生成订单的时候,需要将订单中的货物与订单一起进行保存,价格好解决,只要在订单记录中保存一下,但万一货物改名字呢?是不是也需要保存,如果不保存,当查看历史订单时,看到的货物名称就已经变了。