【问题标题】:mysql products and variants database schemamysql 产品和变体数据库架构
【发布时间】:2015-01-24 15:08:57
【问题描述】:

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

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 个解决方案?哪一个会更好?对我来说最重要的是速度——尤其是在过滤产品时......

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

【问题讨论】:

  • 试试看。如果您遇到问题,请再次询问。
  • 感谢@UweAllner 的帮助

标签: php mysql variants


【解决方案1】:

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

【讨论】:

  • 谢谢@LajosArpad。希望,会有所帮助
猜你喜欢
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多