销售系统数据模型(逻辑)

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: ?

对于您的数据模型,您不需要 OrdersItems 之间的关系线。您正在使用联结 table Order_Items 来表示多对多关系。

至于 class 模型,您不需要 class 来为交叉点 table 建模。您可以简单地在 Order class 中使用 Item 的集合对其进行建模。 OrderItemclass之间的关系是一种组合关系。您可以将其视为:一个 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 名客户。订单不是没有客户或商品的订单。