首页 > 解决方案 > 从其他表值创建表名

问题描述

我正在为我的任务做一个简单的购物车。目前我正在为关系数据库做规划。以下是部分要求:

  1. 有多个产品的多个卖家
  2. 多个客户
  3. cust 可以在购物车中添加许多物品
  4. 交易后保存购物车(有很多物品),以便客户可以在交易历史记录中查看它们
  5. 所以购物车有 cart_id 绑定到 cust_id
  6. 如果有 10 笔交易,将保存 10 个购物车
  7. 每个购物车都有很多物品。

这是流程(我的尝试)-

当 cust=11 添加第一个商品时,会创建一个 cart_id=10001 的购物车,假设 cust 在购物车交易中添加了 5 个商品已完成。发生 2 件事:

  1. cart_id 使用 cust_id 保存到 master_cart 表
  2. (就我而言)创建了一个名为 10001 的表,其中包含 prod_id 和数量

我的问题是关于列表我如何创建一个具有 cart_id 名称的表?另外,这是正确的方法吗?

这是我为 db 准备的草稿。

在此处输入图像描述

这是正确的方法还是如何根据其他表行值创建具有名称的表?

标签: mysql

解决方案


您不应该为每个购物车创建一个表格。动态信息应该在表格内容中,而不是名称中。

您应该有一个作为列的cart_items表。cart_id

CREATE TABLE cart_items (
    cart_id INT,
    prod_id INT,
    quantity INT,
    UNIQUE KEY (cart_id, prod_id),
    FOREIGN KEY (cart_id) REFERENCES cart (cart_id),
    FOREIGN KEY (prod_id) REFERENCES product (prod_id)
);

推荐阅读