我正在为大型商业建筑项目的项目管理订购系统设计表格。输入客户订单时,客户具有原始采购订单。在此过程中,客户将通过添加订单或进行更改来更改原始采购订单。我需要标记/跟踪这些更改并将其编号为客户订单上的变更单,但原始订单需要在订单的顶部保持完整及其小计(以保留原始报价/订单),以及任何更改以下列出的相关定价变更。然后会在底部有一个新的总计,它将考虑原始订单和变更单。
关于如何设计表格以跟踪原始订单商品/总数之间的这些更改,我有哪些想法?
到目前为止,我有表格:客户,订单,订单详情,产品等。
编辑:希望澄清:
订单下达后,如果客户想要稍后添加订单,我会看到向OrderDetail表添加附加行项目。
所以我的客户需要能够查找:
我的问题是,我可以将更改订单行项目放在同一个表格或不同的表格中吗?如何显示原始订单的一部分?如何显示每个变更单的哪些项目?
最好使用另一张或两张桌子吗?
编辑:可能的解决方案
@Darklantern - 如果我理解你的想法,请告诉我,它会是这样的
初始订单:
Order Header:
- Version = 1
Order Detail:
- Version = 1 Part = A
- Version = 1 Part = B
添加更改订单后的订单:
Order Header:
- Version = 2
Order Detail:
- Version = 1 Part = A
- Version = 1 Part = B
- Version = 2 Part = A
- Version = 2 Part = B
- Version = 2 Part = C
这会很棒,但是我要追踪的只是原始订单的一部分,只是版本1的一部分,等等。您的想法看起来不错,但不会清楚地显示“版本2 B部分”是否已编辑或并非没有将它与“版本1 B部分”进行比较。
我把你的想法更进了一步。它会起作用,或者我没有看到什么缺陷:
初始订单:
Order Header:
- Date, etc
Order Detail:
- Version = 0 Part = A
- Version = 0 Part = B
多次订单更改后的订单:
Order Header:
- Date, etc
Order Detail:
- Version = 0 Part = A
- Version = 0 Part = B
- Version = 1 Part = C
- Version = 1 Part = B Upgraded to D (price is the difference between B and D
- Version = 2 Part = A removed (price is a negative amount)
那么关注的是报道的简单程度如何?打印采购订单或发票时,是否可以使用自己的组标题和小计列出每个“版本”?因为很多时候每个“版本”都有自己的批量定价。
我是在正确的轨道上,还是走在兔子路上?
答案 0 :(得分:0)
您的问题过于宽泛,您可能希望准确指定您想要实现的目标。例如,是否要为修改的项目输入新行,然后请求最新的行版本,或者您是否只需要1行(根据需要修改此行),然后将更改信息放入审计表中(前端编码) )。在网上查找可能有助于您设计的ERD,我相信这个概念并不新鲜。检查Northwind / Pubs示例数据库以获取一些想法。
答案 1 :(得分:0)
您可以通过使用tblOrderVersion来标准化,使用(Ident,Orderid,VersionNumber),其中该行将使用当前版本号进行更新。这将允许您跟踪订单的每次迭代。如果表格太大,将冗余数据移除到另一个表格中可以很简单,您可以将其合并以获取所需的报告。我希望我帮助过一点点。此外,我认为在没有解释的情况下向某人投票是无礼的。 (顺便说一下,我向你投票)。
答案 2 :(得分:0)
你的第一个例子正是我的想法。我看到你的第二个样本是一个很好的变化,但报告的更复杂。客户是否看到发票/订单中的所有内容,包括所有更改?或者您是仅将此分组用于管理,管理报告工具?您是否正在为每个版本创建模拟发票,或者您想以分类帐样式格式演示整个订单。从报告中思考(您不会说哪个工具用于报告)的观点,第一个“版本”更简单,您可以按订单明细/产品列出,以便进行快速比较。您可以为每个版本创建小计。您当然可以创建按版本分组的发票/报表,但是如何在每个组中混合来自不同版本的项目,这对于脚本来说可能很复杂。我会更多地考虑这一点。当然,如果你能够编写脚本,那么版本2可能更好。