我有四张 table :
订单 [orderId, *itemId, 总价格]
商品[itemId,*orderId,数量]
海报[posterId、*orderId、尺寸、 Material ]
卡片 [cardId、*orderId、尺寸、文本]
Item 本质上是一个抽象表,其中保存与每个项目相关的数据。所有元素(海报和卡片)都有一些独特的属性。
两个问题:
- 有没有办法在Items表和海报/卡片之间建立继承关系?这样 Order 表将只接受 Item 子项的 itemId?
- 一个订单可以有多个商品,因此它应该包含一个外来商品键列表,而不是只有一个。我该如何解决这个问题?
最佳答案
您可以为Items创建一个表,并在Poster/Card表中设置外键约束到Items表。
Is there a way to set up an inheritance relationship between Items table and poster / card? Such that Order table would only accept itemId of a an Item's child?
设置 Order 表到 Item 表的外键约束。
An order can have multiple items, so it should hold a list of foreign item keys, rather than just one. How do I tackle that?
在多对一关系中,映射应存储在一侧,即您的情况下的项目侧而不是订单侧。如果 Item 表是静态的,您应该创建一个映射表来管理 Item 和 Order 之间的关系,而不是保留在 Order 表中。
关于mysql - 如何在订单表中存储项目列表(MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38718602/