在商品電商領(lǐng)域,商品規(guī)格是一個重要的屬性,一個商品可能有不同的規(guī)格組合,比如顏色、尺碼、重量等等。為了方便管理和查詢,我們需要設(shè)計一個符合業(yè)務(wù)需求的數(shù)據(jù)庫來存儲商品規(guī)格相關(guān)的信息,下面就介紹一下mysql數(shù)據(jù)庫的商品規(guī)格設(shè)計。
首先,我們需要設(shè)計兩張表,一張是商品規(guī)格表,另一張是商品規(guī)格值表。商品規(guī)格表用來記錄商品規(guī)格和規(guī)格值的名稱,規(guī)格值表則記錄具體的規(guī)格值。
CREATE TABLE `goods_specification` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL COMMENT '規(guī)格名稱', `sort_order` tinyint(3) DEFAULT '50' COMMENT '排序', `is_show` tinyint(1) DEFAULT '1' COMMENT '是否顯示', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品規(guī)格表'; CREATE TABLE `goods_specification_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, `spec_id` int(11) NOT NULL COMMENT '規(guī)格id', `name` varchar(255) NOT NULL COMMENT '規(guī)格值', `sort_order` tinyint(3) DEFAULT '50' COMMENT '排序', `is_show` tinyint(1) DEFAULT '1' COMMENT '是否顯示', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品規(guī)格值表';
在商品規(guī)格表中,我們定義了id、名稱、排序和是否顯示屬性,其中id為主鍵,唯一標(biāo)識一種規(guī)格。在商品規(guī)格值表中,我們定義了id、規(guī)格id、名稱、排序和是否顯示屬性,其中規(guī)格id為外鍵,關(guān)聯(lián)商品規(guī)格表的id屬性,表示一種規(guī)格有多個規(guī)格值。
接下來,我們需要設(shè)計一張商品與規(guī)格關(guān)系表,這張表用來記錄每個商品的規(guī)格組合。由于一個商品可能有多種規(guī)格組合,我們需要使用聯(lián)合主鍵來確保唯一性。
CREATE TABLE `goods_specification_relation` ( `goods_id` int(11) NOT NULL COMMENT '商品id', `spec_value_ids` varchar(255) NOT NULL COMMENT '規(guī)格值ids', PRIMARY KEY (`goods_id`,`spec_value_ids`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品規(guī)格關(guān)系表';
在商品規(guī)格關(guān)系表中,我們定義了商品id和規(guī)格值ids屬性,并將這兩個屬性設(shè)置成聯(lián)合主鍵。
綜上所述,我們在mysql中設(shè)計了三張表來存儲商品規(guī)格相關(guān)信息:商品規(guī)格表、商品規(guī)格值表和商品規(guī)格關(guān)系表。