0

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

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 是来自产品变体表还是来自主要产品表。或者我将需要创建其他映射表 - 在一个映射表中我将存储主要产品的参数,在第二个映射表中我将存储产品变体的参数......

您如何看待这 2 个解决方案?哪一个会更好?对我来说最重要的是速度——尤其是在过滤产品时......

感谢您的意见或想法,如何做到这一点。

4

1 回答 1

1

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

于 2015-01-24T15:25:42.127 回答