我一直在查看 ER 图示例以更好地理解它们。我遇到了一个我不确定是否正确的 ER 图。
这里是问题/规范:
UPS prides itself on having up-to-date information on the processing and current location of each shipped item. To do this, UPS relies on a company-wide information system. Shipped items are the heart of the UPS product tracking information system. Shipped items can be characterized by item number (unique), weight, dimensions, insurance amount, destination, and final delivery date. Shipped items are received into the UPS system at a single retail center. Retail centers are characterized by their type, uniqueID, and address. Shipped items make their way to their destination via one or more standard UPS transportation events (i.e., flights, truck deliveries). These transportation events are characterized by a unique scheduleNumber, a type (e.g., flight, truck), and a deliveryRoute.
实体:RetailCenter
、ShippedItems
、运输事件
关系:ReceivedFrom(RetailCenter,ShippedItems)
,ShippedVia(ShippedItems,TransportationEvent)
我的问题是,这三个实体之间不应该存在三元关系吗?我的思考过程是,一件已发货的元素需要经过一次运输才能到达特定的零售中心。这张图不是说零售中心收到装运的元素并且装运的元素需要运输事件吗?
最佳答案
My thought process is that a shipped item takes a transportation event to reach a specific retail center.
您似乎误读了规范。元素被带到 UPS 零售中心,然后运送到目的地。但是让我们考虑一下三元关系,即运送的元素需要运输事件才能到达特定的目的地。
这是这三个实体的许多可想象的关系之一。
Doesn't this diagram say that a shipped item is received by a retail center and that a shipped item takes a transportation event?
是的,确实如此。但是三元关系可以根据这些图二元关系来表达。 (反之亦然。)
每个表(基础变量或查询结果)都包含参与某种特定关系的行。我们可以用 predicate 来描述这种关系--由属性参数化的语句模板。
一个表包含其属性值使其谓词为真语句的行。基本变量的谓词由 DBA 给出。
-- shipped item ItemNumber is received by retail center UniqueId
SELECT * FROM ReceivedFrom
-- shipped item ItemNumber takes transportation event ScheduleNumber
SELECT * FROM ShippedVia
查询表达式的谓词是从其运算符和参数构建的。例如,两个表的 NATURAL JOIN 的谓词是表的谓词的 AND。
-- shipped item ItemNumber is received by retail center UniqueId
and takes transportation event ScheduleNumber
SELECT * FROM ReceivedFrom NATURAL JOIN ShippedVia
当然,您对三元关系的特定概念可能不是这个确切的查询/表。但是一个实用的 UPS 数据库会有基本关系表,任何相关关系都可以根据这些表来表达。
(规范化将“... AND ...”形式的谓词拆分为“...”的单独谓词,当这可能且有帮助时;原始表由组件的 JOIN 返回。 )
关于mysql - 此 ER 图是否应改用三元关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44231605/