php - mysql 产品和变体数据库架构

标签 php mysql variants

我正在解决问题,如何在数据库中存储产品及其变体。 我当前的系统如下所示:

PARAMETERS - id_parameter (some parameter value - i.e. size XXL),...
PRODUCTS_PARAMTERS - id_product, id_paramter
CATEGORIES - id_category,...
PRODUCTS_CATEGORIES - id_product, id_category
FILES - id_file,...
PRODUCTS _FILES - id_file, id_product
PRODUCTS - id_product, description, price, vat, is_variant (1 or 0, if 1, product is variant), main_product(id is variant, here is stored main products id)

在此系统中,如果产品没有变体,则不会只填写价格。这个系统有优点,我不需要对代码和函数进行太多编辑……我认为缺点是尺寸。因为会有很多或行 - 主要产品和变体,所以查询需要检查,即 10 000 行...

现在,我想了一下,我得到了这个想法: 将主要产品和变体存储到单独的表中。然后,我需要编辑映射表 - 我可以添加列,我将在其中指定 id_product 是来自产品变体表还是来自主产品表。或者我需要创建其他映射表 - 在一个映射表中我将存储主要产品的参数,在第二个映射表中我将存储产品变体的参数...

您对这两个解决方案有何看法?哪一个会更好?对我来说最重要的是速度 - 特别是在过滤产品时......

感谢您的意见或想法,如何制作。

最佳答案

如果将多个概念合并到一个表中,通常不是一个好主意。如果您有 n 个产品和 m 个变体,那么只要您打算仅按产品过滤,您的查询就必须处理 n * m 条记录。如果它们是分开的,那么这种查询将只从n条记录中搜索。此外,如果您将变体存储在描述中,那么如果名称发生更改,您将必须更新描述。阅读有关范式的内容,它们会对您有很大帮助。

关于php - mysql 产品和变体数据库架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126900/

相关文章:

php - mysql/php/codeigniter 更新具有相同 id 的多行

android - 产品变体 : Multiple Activities

php - 为什么我的代码输出每个图像 8 次?

mysql - 方法无法使用 Rails ActiveRecord + Raw SQL 返回 Average

c# - MySQL .NET 连接器 6.9.8

mysql - 在数据库中存储业务逻辑

java - 在 Gradle 中创建 API 编程变体

google-analytics - 我可以向 Google Analytics 推送多少产品变体?以及如何使用标签管理器做到这一点?

php - Facebook 连接 : unregister users with PHP library

php - Guzzle 无法绕过 cURL 错误 35 : SSL connect error