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