簡體   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