为产品变体设计数据库的最佳方式
Best way to design a database for product varients
我正在尝试重新设计我的数据库,我想遵循规范化规则,但我不知道应该如何存储产品变体。
我目前的数据库设计:
假设我想在我的网站上展示产品,并且每个产品都连接到一个平台。
以下是可用的平台:
- PS4
- PS3
- Xbox One
- Xbox 360
- PC
例如,我将 Far Cry 5 注册为产品并将其连接到 PS4,但也有 PC 和 Xbox One 版本可用,PS3 而 Xbox 360 没有有自己的版本,所以这两个被排除在外。
将其存储在数据库中的最佳方式(包括规范化)是什么?
因此您会遇到产品只有 1 个平台或只有 3 个平台的情况,但也可能有 2、4 和 5 个平台。
最后,如果产品有超过 1 个变体,我想在产品页面上为用户提供每个变体的 link。
非常感谢您的帮助。
编辑:
我的测试数据库及其数据:
您可以创建产品和平台的连接 table,如下所示。
然后您可以执行以下 select 语句来获取任何给定产品 ID 的平台名称:
SELECT pp.productID, pp.platformID, pl.platformName FROM Product_Platform pp
JOIN Platform pl ON pp.platformID = pl.platformID WHERE productID = 123456;
我正在尝试重新设计我的数据库,我想遵循规范化规则,但我不知道应该如何存储产品变体。
我目前的数据库设计:
假设我想在我的网站上展示产品,并且每个产品都连接到一个平台。
以下是可用的平台:
- PS4
- PS3
- Xbox One
- Xbox 360
- PC
例如,我将 Far Cry 5 注册为产品并将其连接到 PS4,但也有 PC 和 Xbox One 版本可用,PS3 而 Xbox 360 没有有自己的版本,所以这两个被排除在外。
将其存储在数据库中的最佳方式(包括规范化)是什么?
因此您会遇到产品只有 1 个平台或只有 3 个平台的情况,但也可能有 2、4 和 5 个平台。
最后,如果产品有超过 1 个变体,我想在产品页面上为用户提供每个变体的 link。
非常感谢您的帮助。
编辑:
我的测试数据库及其数据:
您可以创建产品和平台的连接 table,如下所示。
然后您可以执行以下 select 语句来获取任何给定产品 ID 的平台名称:
SELECT pp.productID, pp.platformID, pl.platformName FROM Product_Platform pp
JOIN Platform pl ON pp.platformID = pl.platformID WHERE productID = 123456;