为产品变化设计数据库的最佳方法

时间:2018-04-22 15:45:02

标签: database database-design relational-database

我正在尝试重新设计我的数据库,我想遵循规范化规则,但我无法弄清楚应该如何存储产品变体。

我目前的数据库设计:

Current database design

因此,我想说我想在我的网站上展示产品,并且每个产品都连接到一个平台。

以下是可用的平台:

  1. PS4
  2. PS3
  3. Xbox One
  4. Xbox 360
  5. PC
  6. 因此,例如我将Far Cry 5注册为产品并且它已连接到PS4,但是还有PC和Xbox One版本可用,PS3和Xbox 360没有自己的版本,所以这两个被遗漏

    将这个存储在数据库中的最佳方法(包括规范化)是什么?

    所以你会遇到产品只有1个平台或只有3个平台的情况,但也有2个,4个和5个平台。

    最后,如果产品有多个变体,我想在产品页面上为用户提供产品的每个变体的链接。

    感谢您的帮助,非常感谢。

    修改

    我的测试数据库及其数据:

    enter image description here

1 个答案:

答案 0 :(得分:1)

您可以创建产品和平台的联接表,如下所示。

enter image description here

然后,您可以执行以下select语句以获取任何给定productID的platformNames:

SELECT pp.productID, pp.platformID, pl.platformName FROM Product_Platform pp 
    JOIN Platform pl ON pp.platformID = pl.platformID WHERE productID = 123456;
相关问题