【发布时间】:2014-08-21 22:41:22
【问题描述】:
给定以下模型:
CustomerType1(id, telephone, address)
CustomerType2(id, telephone, name)
OrderType1(id, timestamp, customerType1.id, comments, enum1)
OrderType2(id, timestamp, customerType2.id, comments)
OrderType3(id, timestamp, name)
我将如何建模以下内容?
OrderList(id, OrderType.id, ..)
OrderItem(OrderList.id, MenuItem.id)
A.我需要 3 种不同类型的 OrderList 来适应 orderTypes 吗?
OrderList1(id, OrderType1.id, ..)
OrderItem1(OrderList1.id, MenuItem.id)
OrderList2(id, OrderType2.id, ..)
OrderItem2(OrderList2.id, MenuItem.id)
OrderList3(id, OrderType3.id, ..)
OrderItem3(OrderList3.id, MenuItem.id)
或者
B. orderLists 和 OrderTypes 之间关系的 3 个定义会更好吗?
OrderList_Type1(orderList.id, orderType1.id)
OrderList_Type2(orderList.id, orderType2.id)
OrderList_Type3(orderList.id, orderType3.id)
这似乎是一种非常低效的数据存储方式,我只是觉得我对它的建模确实不正确(尽管它仍然有意义,但它可能不利于扩展/效率?)。有没有更好的方法来建模这个?
注意:给定的模型可以更改,但仍必须包含相同的信息。
【问题讨论】:
-
您的问题不完整。您没有解释“MenuItem”,也没有描述您的要求。在我看来,您不应该对不同的客户类型和订单类型进行建模,而应该对
Customer和Order建模。订单通常由订单行组成,因此您通常需要OrderLine类型/表格。你的“OrderList”可能是指ItemCatalog。
标签: database database-design uml data-modeling database-management