数据库设计 - 3个表之间的关系

Database design - relation between 3 tables


我是关系数据库的新手,我尝试设计表之间的关系,但无法弄清楚。
我正在尝试设计一个超市应用程序,该应用程序应在我的系统中保存有关每个超市的信息(我可以从某种类型拥有多个超市)。

我想到了这些关系:

但我需要帮助才能找到超市与价格之间的关系,或者如何获取特定超市中某些产品的价格信息。

Supermarket - 超市(主键),位置

产品 - product_id(主键),描述

价格-超市(主键),product_id(主键),价格

而不是图表中显示的关系,关系必须是,

  • 超市和价格
  • 产品和价格

你的设计应该是下面的方式

super_market table --------> 产品 table

产品table-------->价格table

说明,

  1. 超市是主要的 table,它将提供高级信息,例如
    地址、地点、声誉等,
  2. 产品 table 应该有参考超市的产品列表 table
  3. 价格table应该有每个产品的详细信息及其价格, 品种、数量、品牌等。

Super_market
产品(参考Super_market的主键)
Price(参考Product主键

通读以下 link 并了解适合您的设计的正确方法。 https://www.computerweekly.com/tip/Inmon-or-Kimball-Which-approach-is-suitable-for-your-data-warehouse

你应该至少做 4 tables:

  1. ProductOutlet:ProductOutletID(主键)、ProductID、OutletID
  2. 价格:ProductOutletID、日期、价格
  3. 产品:ProductID(主键)、ProductName
  4. Outlets:OutletID(主键)、OutletName、Location

这是规范化 tables 的正确方法(尽管我们有 table 包含 2 列的复合主键的价格)。因此,关系将是:

  • 1 - ProductOutletID - 2
  • 1 - 产品 ID - 3
  • 1 - 出口 ID - 4