销售系统数据模型(逻辑)
Sales system datamodel (Logical)
我试图建立一个逻辑数据模型,但我不完全确定它是否建模正确。这是一个非常精简的基本模型,但总的来说,我想知道它是否按照应有的方式建模。
此外,如何将其转换为面向对象编程中的 class 模型?
我想我需要:
Class Customer: int id, string name
Class Order: int id, string date, Customer object
Class Item: int id, string itemName, string item Desc
Class OrderItem: ?
对于您的数据模型,您不需要 Orders
和 Items
之间的关系线。您正在使用联结 table Order_Items
来表示多对多关系。
至于 class 模型,您不需要 class 来为交叉点 table 建模。您可以简单地在 Order
class 中使用 Item
的集合对其进行建模。 Order
和Item
class之间的关系是一种组合关系。您可以将其视为:一个 Order
有一个 Item
或一个 Order
有一个 Item
.
的集合
以下是如何在 java 中为 Order
class 建模。
public class Order {
private int id;
private Date date;
private Customer customer;
private List<Item> items; // you could use other collection types as well.
...
}
编辑:
另外,对于您关系的多方面,您可以考虑使用 "one through many" 线(用线鱼尾纹),而不是 "zero through many"(用圆圈鱼尾纹)。至少有 1 件商品和至少 1 名客户。订单不是没有客户或商品的订单。
我试图建立一个逻辑数据模型,但我不完全确定它是否建模正确。这是一个非常精简的基本模型,但总的来说,我想知道它是否按照应有的方式建模。
此外,如何将其转换为面向对象编程中的 class 模型?
我想我需要:
Class Customer: int id, string name
Class Order: int id, string date, Customer object
Class Item: int id, string itemName, string item Desc
Class OrderItem: ?
对于您的数据模型,您不需要 Orders
和 Items
之间的关系线。您正在使用联结 table Order_Items
来表示多对多关系。
至于 class 模型,您不需要 class 来为交叉点 table 建模。您可以简单地在 Order
class 中使用 Item
的集合对其进行建模。 Order
和Item
class之间的关系是一种组合关系。您可以将其视为:一个 Order
有一个 Item
或一个 Order
有一个 Item
.
以下是如何在 java 中为 Order
class 建模。
public class Order {
private int id;
private Date date;
private Customer customer;
private List<Item> items; // you could use other collection types as well.
...
}
编辑:
另外,对于您关系的多方面,您可以考虑使用 "one through many" 线(用线鱼尾纹),而不是 "zero through many"(用圆圈鱼尾纹)。至少有 1 件商品和至少 1 名客户。订单不是没有客户或商品的订单。