对于订单系统,一般情况下是这样的三角关系:customer-order-product。
order设计:customer、orderitem
orderitem设计:order, product
product设计:product是所有产品的父类,具体产品都继承product。
实际应用,以旅游电子商务平台为例。其中有产品机票、酒店、高尔夫等,以机票为列,存放的是航班号+起飞时间+乘客信息;酒店,存放的是酒店名称+入住时间+客户信息;高尔夫,存放的是球场名称+入场时间+客户信息;对于orderitem的设计,需要有技巧性。
order具体设计:
customer:客户id
orderitem:类型,包含的产品信息。
orderDate:订单时间。
total
relatedClient:存放联系人信息,包括联系人名称、手机、固定电话、送货方式、送货地址、邮编。
shipDate:发货时间
status:订单状态
orderitem具体设计为:
order: 所属订单
product:所属产品
client:类型,存放客户的信息,包括姓名、证件类型、证件号码、客户类别(成人、儿童、婴儿)。
quantity: 数量
unitPrice: 单价
product具体设计:
对于product,在这里是抽象的父类,
酒店product:酒店名称、入住时间、离店时间、房间id、
机票product:航班号、起飞时间、
高尔夫product:球场名称、入场时间、离场时间、洞号id。