首页 文章

mysql产品和变体数据库模式

提问于
浏览
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来自产品变量表或主要产品表 . 或者我需要创建其他maping表 - 在一个maping表中我将存储主要产品的参数,在第二个我将存储产品变量的参数...

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

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

1 回答

  • 1

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

相关问题