【发布时间】:2011-07-25 20:31:29
【问题描述】:
我正在处理产品 BOM(物料清单),但我遇到了困难。这是我的类图:
- 组件具有 ComponentItems。一个 ComponentItem 有一个 Component 和一个数量。示例:组件 ABC 有 3 个组件 C1 和 2 个组件 C2。
- 产品具有 ComponentItems 和 ProductItems(类似于 ComponentItems,但用于产品)。
每个组件都有一个单位成本,因此一个 ComponentItem 有一个总成本。而由 ComponentItems 组成的 Component 也有总成本(ComponentItems 成本之和)。
这个结构让我可以创建任何产品/组件层次结构。 我正在验证产品和组件的插入/更新循环。
我希望在数据库中更新每个成本,我不想在每次必须使用产品/组件时使用对象来计算成本。我的意思是,如果我更新组件 ABC 的单位成本,他的父组件成本应该更新等等 --> 更新在层次结构中传播。
实现这一点的最佳方法是什么?我在想一个树表示。当一个组件更新时,我检索所有相关的组件/产品并构建一个树。然后我必须更新组件的第一级父级,并对这个父级的父级执行相同的操作。
【问题讨论】:
-
有人告诉你必须使用树木吗?有很多不同的方法可以实现这一点...
-
我不必使用树。欢迎任何解决方案:)
-
所以,要明确一点,您正在编写一个仅用于生成产品 BOM 的程序?
-
不,这是更大计划的一部分。当我保存发票(销售)时,我必须保存每个产品的单位成本。这是我必须在数据库中更新成本的原因之一。我无法检索每个产品的所有子项以获取其成本。成本必须在 db 中预先计算。也因为我(有时)使用可出租性来计算产品价格。
-
这个程序是客户端还是服务器端?