以下是我的程序设置方式,非常基本。 (Objective-c使用核心数据)
当我创建一个项目时,例如库存数量为15,我创建项目15次。这样我就可以将哪个项目属于哪个发票,或者它不属于发票。这也允许我编辑单个项目,如果说它已被损坏。不过,我不确定这是否是最好的实现方式。
现在我遇到的问题是,在我之前的实施中,我只有一个项目可用于许多数量。我有一个属性“数量”。然而,我发现自己有限,如何关联哪些物品被出售,出售给谁等。我创建了第二个实体“ItemSold”,但我发现这是不必要的,当我尝试返回特定项目时遇到问题添加一个新项目(在它的位置,在销售点)。
当我尝试显示我的项目时,我显然不希望在我的表格中显示15个相同的项目,我宁愿有一个包含数量的列。
我很想知道一般来说,我应该每次都添加每个项目,还是一个代表多个数量的项目。如果它是一个项目,如何区分已售出的产品以及销售的产品。
答案 0 :(得分:1)
嗯,你的案子没有一个正确答案。代码复杂性,性能权衡,模型复杂性......所以请注意以下内容。
Customer
- name: string
- orders ->> Order
Order
- reference: string // order reference number, unique
- date: date // date of the order
- shippingDate: date // shipping date, null = not yet shipped
- orderItem ->> OrderItem
- customer -> Customer
OrderItem // a line on the invoice, roughly
- quantity: integer
- discount: double // percentage
- item -> Item
- order -> Order
Item
- name: string
- weight: double
- price: decimal
- orderItem ->> OrderItem
这是发票部分。可以像处理OrderItem一样处理库存:
InventoryItem // a line in the inventory book
- quantity: integer
- state: string // new, returned, damaged...
- items ->> Item
将反向关系添加到Item:
- inventoryItems ->> InventoryItem
业务逻辑必须确保库存是最新的,无法订购损坏的物品,这样的东西。
当然,它可以完全不同地完成,但仍然是正确的,适合您的需要。