mysql - 如何在订单表中存储项目列表(MySQL)

标签 mysql database list inheritance many-to-many

我有四张 table :

订单 [orderId, *itemId, 总价格]

商品[itemId,*orderId,数量]

海报[posterId、*orderId、尺寸、 Material ]

卡片 [cardId、*orderId、尺寸、文本]

Item 本质上是一个抽象表,其中保存与每个项目相关的数据。所有元素(海报和卡片)都有一些独特的属性。

两个问题:

  1. 有没有办法在Items表和海报/卡片之间建立继承关系?这样 Order 表将只接受 Item 子项的 itemId?
  2. 一个订单可以有多个商品,因此它应该包含一个外来商品键列表,而不是只有一个。我该如何解决这个问题?

最佳答案

您可以为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/

相关文章:

python - 将 NumPy 数组转换为列表时 float 不一致

php - PHP 中的 Sql 语句未插入数据库,但未给出错误

javascript - 插入 SQL 数据库时出现错误 502,没有主键

mysql - 在一张表中建模数据与使用两张表相比的优势

mysql - 在另一个参数表上获取并过滤 MYSQL 结果

arrays - 如何处理 Redux 中的列表项

php - mysql 将 varchar 转换为日期

php - MySQL中获取部分行的平均值和单行的值

python - 如何解决django中clean函数的问题

python - 我怎样才能将列表另外压缩到已经压缩的列表中?