繁体   English   中英

mysql产品和变体数据库架构

[英]mysql products and variants database schema

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

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)

在这个系统中,如果产品不是变体,它就不会仅仅满足价格。 这个系统有优点,我不需要在代码和功能上做太多的编辑……我认为缺点是很大。 因为会有很多行-主要产品和变型,所以查询将需要检查即1万行...

现在,我考虑了一下,我有了一个主意:将主要产品和变体存储在单独的表中。 然后,我将需要编辑映射表-如果id_product是来自产品变型表还是来自主要产品表,则可以在此处添加列,在该列中指定。 或者我将需要创建其他映射表-在一个映射表中,我将存储主要产品的参数,在第二个映射表中,我将存储产品变体的参数...

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

感谢您的意见或想法,以及如何实现。

如果将几个概念合并到一个表中,通常不是一个好主意。 如果您有n个产品和m个变体,则每当您打算仅按产品过滤时,您的查询将必须处理n * m个记录。 如果它们是分开的,则这种查询将仅从n个记录中搜索。 另外,如果将变体存储在描述中,则在更改名称的情况下,您将必须更新描述。 了解正常形式,它们将对您有很大帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM