【问题标题】:How should my DB model looks if I have two connects to the same tables?如果我有两个连接到同一个表,我的数据库模型应该如何?
【发布时间】:2022-01-05 13:50:33
【问题描述】:

当用户可以是客户或交易者时,我正在创建应用程序(我不能为他们每个人创建单独的表格)。每个交易者都可以拥有许多产品,并创建只能为选定用户显示的特殊产品(Special_product 表)。每个用户都可以下订单 (Order_table) 特定产品。问题是我的数据库模型中有两个相似的连接表。我不知道这是否是一个好的解决方案,这就是为什么要问你 - 它应该看起来像这样或者也许有更好的解决方案?

图形模型:

【问题讨论】:

    标签: sql database


    【解决方案1】:

    我认为你的模型很好。

    要为给定用户获取可用产品,我会这样做

    SELECT
      p.product_id,
      p.product_name,
      vendor.user_name vendor_name
    FROM
      (
        SELECT product_id FROM product
        UNION 
        SELECT product_id FROM special_product WHERE user_id = ?
      ) selection
      INNER JOIN product p ON p.product_id = selection.pproduct_id
      INNER JOIN [user] vendor ON vendor.user_id = p.user_id
    

    user 是 SQL 中的保留字,我建议选择不同的表名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 2015-12-25
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多