Skip to content

Design Decisions

Michelle edited this page Feb 18, 2022 · 5 revisions

Rationale for key design decisions in the domain model

  • An order can have 0..1 customer/billing address/shipping address, because when an item is bought in person, the customer does not need to have an account to complete the purchase, but an order still has to be placed to keep track of the inventory.

  • Manager is a subclass of Employee, as they share the same attributes, but the Manager has a couple extra privileges.

  • We assume that we keep track of orders even for deleted customer accounts, which is why shipping/billing addresses is not a composition.

  • An Order has 0..1 payment, because when the status is "inCart", the customer has not paid yet.

  • Product and Category are bidirectional, as we should be able to sort each from the other.

Clone this wiki locally