【问题标题】:How should I structure my database?我应该如何构建我的数据库?
【发布时间】:2018-08-03 01:51:55
【问题描述】:

我是 SQL 的初学者。我目前有“编码障碍”,需要帮助推进。


我不确定我应该如何构建我的数据库。 我添加了一张图片,希望能让您更好地了解我正在努力实现的目标。请看一下


会有多个商​​店包含多个项目。每件商品都有一个买入价和一个卖出价。一个商品可能被多个商店使用,并且可能与其他商店有不同的购买/销售价格。我创建此数据库的目标是能够查询商品并确定哪些商店以最低价格购买或出售它。


编辑:

我的想法是创建三个表:Items、Stores 和 ItemsStores。

Stores 将包含 ID、Name

Items 将包含 ID、Name

ItemsStores 将包含列Store、Item、Buy Price、Sell Price。

我觉得只为一个 ID 和一个名称创建一个列可能是多余的。我错了吗?有没有更好的方法来做到这一点?


我已经阅读了一些articles,甚至观看了videos关于结构化数据库的基础知识,但由于某种原因,我并没有点击它。任何有关我的表/列应该是什么样子的帮助将不胜感激。

【问题讨论】:

  • 如果您要求我们提供带有解释的完整架构,那么我会说您的问题过于宽泛。我建议您的架构的主干可能是一个桥接表,它存储商店和库存商品之间的关系。这也意味着另外两张表,一张用于商店,一张用于商品。这是一个很好的起点。
  • 我应该包括我为我的问题尝试的解决方案。 [现在编辑并添加它]我最初的解决方案是只使用一个包含商店名称、商品、购买价格、销售价格的表(商店)。但这会导致商店名称和商品出现许多重复。我现在将尝试为项目和商店创建两个表。我不知道为什么我没有想到这一点。这些列将是商店的 ID 和商店名称。项目的列将是买卖价格。从这里我只需要学习如何将两者联系起来。
  • 您通过 bridge 表将两者关联起来,该表仅存储用于存储映射到一个或多个项目的键的键。
  • 谢谢蒂姆。我现在已经在我原来的问题中包含了我在桥牌上的尝试。这看起来不错吗?我觉得为一个值(商店的名称)创建另一个表是多余的。

标签: sql database data-structures structure


【解决方案1】:

当您开始设计数据库时,您需要通过突出显示需要表格的对象来思考问题。越多越好(惊喜惊喜)。 所以这就是我写下问题的方式:
会有多个商店,其中包含多个商品。每件商品都有一个买入价和一个卖出价。一件商品可能被多家商店使用,并且可能与其他商店有不同的购买/销售价格。我创建此数据库的目标是能够查询商品并确定哪些商店以最低价格购买或出售它。

multiple 被突出显示,因为这意味着多对多关系

显然,您需要决定(这是棘手的部分)您希望价格在哪里:价格是商品的属性吗?还是商店里的商品?

一旦你的头停止旋转,并且你认为你会处于一个更好的位置。

【讨论】:

    猜你喜欢
    • 2021-06-05
    • 2011-10-13
    • 1970-01-01
    • 2018-08-02
    • 2014-03-26
    • 1970-01-01
    • 2021-11-28
    • 2011-10-02
    • 2021-02-21
    相关资源
    最近更新 更多