ä½Âè ï¼Â京ä¸Âç©浠é«Âå³°
1 éÂÂæ±Â
æÂÂ建ä¸Â个çµåÂÂéÂÂç¨åÂÂÃ¥ÂÂÃ¥ÂÂä¸Âå¿Âï¼Âå¯æ¯æÂÂÃ¥ÂÂÃ¥ÂÂçÂÂç§Âç±»åÂÂå±Âæ§ç¹Âå¤Âï¼Âå¯以å®åÂÂå®Âç©ãÂÂèÂÂæÂÂãÂÂä¼ÂÃ¥ÂÂãÂÂæÂÂå¡类åÂÂÃ¥ÂÂãÂÂæ¯Âä¸Âç§ÂÃ¥ÂÂÃ¥ÂÂå ·æÂÂä¸ÂÃ¥ÂÂçÂÂè§Âæ ¼ï¼Âä¸ÂÃ¥ÂÂçÂÂè§Âæ ¼çÂÂÃ¥ÂÂÃ¥ÂÂæÂÂå¤Âç§Âä»·æ ¼ï¼ÂÃ¥ÂÂÃ¥ÂÂå¯æ¯æÂÂå¤Âç§Âè´§å¸ÂçÂÂæ¯ä»ÂãÂÂ
1ï¼Âç®çÂÂæ¯ä»Âä¹Âï¼Â
带大家ä¸Âèµ·å®Âç°ä¸Â个éÂÂç¨åÂÂÃ¥ÂÂÃ¥ÂÂä¸Âå¿Âï¼Âä»Âä¸Âå¦å°ä¸ÂäºÂæ©å±Âæ§设计æÂÂæ³ãÂÂ
2ï¼Âä½ è½å¦å°ä»Âä¹Âï¼Â
- çÂÂ解è¡Âä¸Âæ¯è¯ÂÃ¥ÂÂæ¦Â念
- å¨æÂÂsku表åÂÂ设计
- å±Âæ§åÂÂskuæ©å±Âæ§设计
- ä»·æ ¼æ©å±Âæ§设计
- Ã¥ÂÂÃ¥ÂÂè§Â格设计
3ï¼Âä¸Âè½å¦å°ä»Âä¹Âï¼Â
- Ã¥ÂÂÃ¥ÂÂå¾çÂÂÃ¥ÂÂå¨设计
- Ã¥ÂÂÃ¥ÂÂä¸Âä¸Âæ¶设计
- Ã¥ÂÂÃ¥ÂÂæ Âç¾设计
- åºÂÃ¥ÂÂ设计
- æÂÂç´¢çÂÂéÂÂ设计
2 Ã¥ÂÂÃ¥ÂÂçÂÂåºæ¬æ¦Â念
Ã¥ÂÂÃ¥ÂÂä¸Âå¿Âæ¯çµåÂÂÃ¥ÂÂ个系ç»ÂçÂÂæÂÂåºç¡ÂÃ¥ÂÂå Âï¼Â为åÂÂÃ¥ÂÂãÂÂ订åÂÂï¼Âä¼Âæ ä¿ÂéÂÂãÂÂåºÂÃ¥ÂÂãÂÂä»Âå¨ç©æµÂçÂÂç³»ç»ÂæÂÂä¾Âåºç¡Âæ°æ®ãÂÂ
çµåÂÂçÂÂåºæ¾¯è¯ÂãÂÂ
- SKUï¼Âï¼ÂStock Keeping Uintï¼Âå³åºÂÃ¥ÂÂéÂÂÃ¥ÂÂä½Âï¼Âï¼ÂåºÂÃ¥ÂÂæ§å¶çÂÂæÂÂå°Âå¯ç¨åÂÂä½ÂãÂÂä¾Âå¦ÂâÂÂiPhone 7 Plus 128Gé¶è²âÂÂå°±æ¯ä¸Â个SKUï¼Âä»ÂåºÂ管çÂÂãÂÂéÂÂè´Âè¿Âè´§ãÂÂåºÂÃ¥ÂÂ管çÂÂé½æ¯以SKU为记å½ÂÃ¥ÂÂå ÂãÂÂ
- SPUï¼Âï¼ÂStandard Product Unitï¼Âå³æ ÂÃ¥ÂÂÃ¥ÂÂ产åÂÂÃ¥ÂÂå Âï¼Âï¼Âæ¯ä¸Âç»Âæ ÂÃ¥ÂÂÃ¥ÂÂä¿¡æ¯çÂÂéÂÂÃ¥ÂÂï¼Âä¾Âå¦ÂâÂÂiPhone 7 PlusâÂÂå°±æ¯ä¸Â个SPUãÂÂ
- ç±»ç®ï¼Âå³åÂÂç±»æ ÂãÂÂçµåÂÂ常ç¨çÂÂæÂÂ两å±Âç±»ç®ï¼ÂÃ¥ÂÂå°å±Â示类ç®åÂÂÃ¥ÂÂ端åÂÂÃ¥ÂÂç±»ç®ãÂÂ
Ã¥ÂÂå°类ç®æÂÂçÂÂæ¯å±Â示ç»Âæ¶Âè´¹è çÂÂçÂÂç±»ç®ï¼Âä¼Âæ ¹æ®å£èÂÂãÂÂéÂÂå®çÂÂçÂ¥ãÂÂæ´»å¨è¿Âè¡ÂÃ¥ÂÂå¨ï¼Â
Ã¥ÂÂå°类ç®å±ÂäºÂåºç¡Âæ°æ®ï¼Âä¸Âå¯éÂÂæÂÂÃ¥ÂÂå¨ï¼Âæ·»å SKUæ¶é½éÂÂè¦ÂéÂÂæ©åÂÂå°类ç®ï¼Âè¿Âè¡Âç»Âå®Âã - å±Âæ§ï¼ÂÃ¥ÂÂ为堳é®å±Âæ§ãÂÂéÂÂå®å±Âæ§ãÂÂéÂÂå ³é®å±Âæ§ãÂÂç¹æ®Âå±Âæ§ãÂÂ
- å ³é®å±Âæ§ æ¯æÂÂè½å¤Âå¯ä¸Âç¡®å®Â产åÂÂçÂÂå±Âæ§ï¼Âæ¯忠填项ï¼Âä¾Âå¦ÂæÂÂæºçÂÂå±Âå¹Â尺寸ãÂÂÃ¥ÂÂå·å±ÂäºÂå ³é®å±Âæ§ãÂÂ
- éÂÂå®å±Âæ§ æ¯ç»ÂæÂÂSKUçÂÂç¹æ®Âå±Âæ§ï¼ÂæÂÂ称为âÂÂè§Âæ ¼å±Âæ§âÂÂï¼Âä¾Âå¦ÂæÂÂæºçÂÂâÂÂé¢Âè²âÂÂãÂÂâÂÂå åÂÂâÂÂãÂÂ
- éÂÂå ³é®å±Âæ§ æÂÂçÂÂæ¯é¤堳é®å±Âæ§ãÂÂéÂÂå®å±Âæ§å¤ÂçÂÂå ¶ä»Âå±Âæ§ï¼Âå¦ÂÃ¥ÂÂç½®æÂÂ象头åÂÂç´ ãÂÂÃ¥ÂÂç½®æÂÂÃ¥ÂÂ头åÂÂç´ ãÂÂ产å°ãÂÂÃ¥ÂÂ辨çÂÂãÂÂ
- ç¹æ®Âå±Âæ§ æÂÂéÂÂè¦ÂéÂÂè¿Âè°Âç¨堶ä»ÂæÂÂå¡æÂÂè½è·åÂÂå°çÂÂå±Âæ§ãÂÂ
3 Ã¥ÂÂÃ¥ÂÂæ¶æÂÂå¾
Ã¥ÂÂèÂÂä¸Âé¢çÂÂÃ¥ÂÂÃ¥ÂÂç»ÂæÂÂ模åÂÂå¾ï¼ÂÃ¥ÂÂÃ¥ÂÂ模åÂÂçÂÂç»ÂæÂÂè¾Â为å¤ÂæÂÂï¼Âå¨å®Âä¹ÂSKUä¸ÂSPUæ¶ï¼Âæ¶ÂÃ¥ÂÂç±»ç®ãÂÂå±Âæ§ãÂÂÃ¥ÂÂçÂÂãÂÂçÂÂ产信æ¯çÂÂæ°æ®çÂÂç»ÂÃ¥ÂÂï¼Âå¨å®Âä¹ÂåºSKUÃ¥ÂÂÃ¥ÂÂÃ¥ÂÂ建SPUï¼Âå¨SPUä¸Âæ·»å åÂÂÃ¥ÂÂæÂÂè¿°åÂÂè§Âæ ¼æÂÂÃ¥ÂÂå°±æÂÂäºÂÃ¥ÂÂÃ¥ÂÂãÂÂæ ¹æ®åÂÂÃ¥ÂÂÃ¥ÂÂè¡ÂçÂÂåºäºÂ价格管çÂÂãÂÂè¯Â论管çÂÂãÂÂæÂÂç´¢çÂÂéÂÂçÂÂ模åÂÂãÂÂ
3.1 Ã¥ÂÂÃ¥ÂÂç»ÂæÂÂ模åÂÂå¾
3.2 Ã¥ÂÂÃ¥ÂÂä¸Âå¿Âæ ¸å¿ÂERå¾
3.3 Ã¥ÂÂÃ¥ÂÂä¸Âå¿Âæ´ä½Âæ¶æÂÂå¾
4 Ã¥ÂÂÃ¥ÂÂç±»ç®
4.1 ç±»ç®管çÂÂ
Ã¥ÂÂÃ¥ÂÂç±»ç®åÂÂ为两å±Âï¼Âåºç¡Âæ°æ®类ç®å±Âï¼ÂÃ¥ÂÂå°类ç®ï¼ÂãÂÂÃ¥ÂÂå°å±Â示类ç®å±Âï¼ÂÃ¥ÂÂå°类ç®ï¼ÂãÂÂé£为ä»Âä¹Âè¦Âå°ÂÃ¥ÂÂãÂÂÃ¥ÂÂå°类ç®åÂÂå¼Â管çÂÂï¼ÂèÂÂä¸Âæ¯åÂÂãÂÂÃ¥ÂÂå°åÂ
±ç¨ä¸Âå¥Âç±»ç®å¢ï¼Â
Ã¥ÂÂå°类ç®é¢åÂÂÃ¥ÂÂ家æÂÂä¾ÂåºÂé¾人åÂÂï¼ÂÃ¥ÂÂÃ¥ÂÂå±Âæ§ãÂÂéÂÂå®å±Âæ§åÂÂÃ¥ÂÂçÂÂçÂÂå¾Âå¤Âæ°æ®é½æ¯å¨åºç¡Âç±»ç®ä¸Âè¿Âè¡Â管çÂÂï¼Â
Ã¥ÂÂå°类ç®é¢åÂÂç¨æ·ï¼Âæ¹便ç¨æ·æÂ¥æ¾åÂÂÃ¥ÂÂï¼Âè¿Âå¯以éÂÂçÂÂè¿ÂèÂ¥éÂÂè¦Âå»è°Âæ´ãÂÂæ¯Âå¦ÂèÂÂä¸ÂéÂÂçÂÂèÂÂæÂ¥ãÂÂæ¶令å£èÂÂÃ¥ÂÂÃ¥ÂÂï¼Âè¿ÂèÂ¥ä¼Âç»Â常åÂÂæ´åÂÂå°类ç®ãÂÂ
4.2 Ã¥ÂÂå°类ç®
Ã¥ÂÂå°类ç®主è¦Âé¢åÂÂå¹³å°è¿Âè¥人åÂÂæÂÂÃ¥ÂÂ家ï¼Âç¨äºÂ管çÂÂÃ¥ÂÂÃ¥ÂÂãÂÂå±Âæ§åÂÂÃ¥ÂÂçÂÂçÂÂæ°æ®ãÂÂ
Ã¥ÂÂå°类ç®ç¸对åºå®Âï¼Âç¡®å®ÂäºÂä¹ÂÃ¥ÂÂä¸Âä¼Âè½»æÂÂÃ¥ÂÂæ´æÂÂå é¤ï¼Âå¦ÂæÂÂç±»ç®ä¸ÂæÂÂè½½æÂÂÃ¥ÂÂÃ¥ÂÂï¼Âå°±ä¸Âè½å é¤æÂÂä½ÂåºÂãÂÂ
ç±»ç®æ ÂçÂÂå±Â次ä¸Âè½太深ï¼Âä¸Âè¬ä¸Âå±ÂæÂÂÃ¥ÂÂå±ÂãÂÂå¦ÂæÂÂ太深ï¼Â对äºÂÃ¥ÂÂÃ¥ÂÂçÂÂ管çÂÂä¸Â太æ¹便ãÂÂç±»ç®æ Âä¸ÂæÂÂÃ¥ÂÂä¸Âå±Âç±»ç®称为å¶åÂÂç±»ç®ï¼ÂÃ¥ÂÂÃ¥ÂÂå¿Â
é¡»æÂÂè½½äºÂå¶åÂÂç±»ç®ä¸ÂãÂÂ
4.3 Ã¥ÂÂå°类ç®
Ã¥ÂÂå°类ç®主è¦Âé¢åÂÂç¨æ·ï¼Âæ¹便ç¨æ·çÂÂéÂÂæÂ¥æ¾åÂÂÃ¥ÂÂï¼Âå¦Âå¾å¾æÂÂ示ãÂÂ
Ã¥ÂÂå°类ç®å¯以根æ®è¿ÂèÂ¥éÂÂè¦Âï¼Âçµ活å¤ÂÃ¥ÂÂãÂÂæÂÂ以å¤ÂçÂÂÃ¥ÂÂÃ¥ÂÂçÂÂÃ¥ÂÂ端类ç®æ¶ï¼Âå°±åºÂ该æÂÂä¾Âå¤Âæ ·åÂÂçÂÂÃ¥ÂÂ端类ç®æÂ¥æ¯æÂÂãÂÂ
Ã¥ÂÂå°类ç®å¯æ¯æÂÂä¸ÂÃ¥ÂÂ客æ·端çÂÂ设置ãÂÂPC端ãÂÂH5端ãÂÂAPP端çÂÂ
Ã¥ÂÂå°类ç®ä¸ÂÃ¥ÂÂäºÂåºå®ÂçÂÂÃ¥ÂÂå°类ç®ï¼Âç¼Âè¾Âå¾Âçµ活ãÂÂå¯éÂÂå ãÂÂå¯å é¤ãÂÂå¯éÂÂæ¶åÂÂå¨ï¼Âå®Âæ¶çÂÂæÂÂãÂÂ
4.4 ç±»ç®表ç»ÂæÂÂ设计
4.1.1 Ã¥ÂÂ端类ç®表设计
CREATE TABLE `category` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(32) NOT NULL COMMENT 'ç±»ç®åÂÂ称',
`parent_id` bigint(11) NOT NULL COMMENT 'ç¶id',
`leaf` tinyint(4) NOT NULL COMMENT 'æ¯å¦å¶åÂÂèÂÂç¹ 1æ¯ 0ä¸Âæ¯',
`level` tinyint(4) NOT NULL COMMENT 'ç±»ç®å±Â级',
`path` varchar(128) DEFAULT NULL COMMENT 'å®Âæ´ç¶级路å¾Âï¼Âç¶ç¶id_ç¶id',
`sort` int(11) unsigned NOT NULL COMMENT 'æÂÂåºÂÃ¥ÂÂ段',
`status` tinyint(4) NOT NULL COMMENT 'Ã¥ÂÂç±»ç¶æÂÂ:1ä¸Âæ¶ 2ä¸Âæ¶',
`del` tinyint(4) unsigned NOT NULL COMMENT 'æ¯å¦å é¤',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ç±»ç®表';
4.4.2 Ã¥ÂÂ端类ç®æ°æ®å±Â示
5 SKU
SKUç®Âæ¯çµåÂÂä¸ÂæÂÂåºç¡ÂçÂÂæ¦Â念ï¼ÂSKUæ¯æÂÂå°ÂåºÂÃ¥ÂÂÃ¥ÂÂå ÂãÂÂ
以iPhone 8 Plusï¼ÂSPUï¼Â为ä¾Âï¼Âè¿Â个SPUçÂÂè§Âæ ¼æÂÂå¤Âç§Âï¼Âé¢Âè²å å«é è²ãÂÂç½è²ãÂÂé»Âè²ãÂÂç«ç°éÂÂãÂÂé¶è²ãÂÂ亮é»ÂãÂÂ红è²çÂÂ6ç§Âï¼Âå åÂÂå å«32Gã 128GãÂÂ256GçÂÂ3ç§Âï¼Âï¼Â对åºÂ18ï¼Âå³3ÃÂ6ï¼Âç§ÂSKUãÂÂæ¯Âå¦ÂâÂÂiPhone 7 Plusç½ è²32GâÂÂãÂÂâÂÂiPhone 7 Plusé»Âè²32GâÂÂè¿Â两个SKUé½è½堷åÂÂå°å®Âç©ãÂÂä»ÂåºÂç³»ç»ÂãÂÂéÂÂè´Âç³»ç»ÂãÂÂåºÂÃ¥ÂÂç³»ç»ÂçÂÂç³»ç»Âé½æ¯主è¦Â管çÂÂSKUãÂÂ
5.1 sku表设计
CREATE TABLE `sku` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sku_no` varchar(32) DEFAULT '' COMMENT 'Ã¥ÂÂÃ¥ÂÂåºÂÃ¥ÂÂå·',
`sku_name` varchar(50) DEFAULT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂÃ¥ÂÂ称',
`sku_description` varchar(256) DEFAULT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂæÂÂè¿°',
`sku_type` tinyint(4) DEFAULT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂç±»åÂÂï¼Â1å®Âç©åÂÂÃ¥ÂÂãÂÂ2ä¼ÂÃ¥ÂÂÃ¥ÂÂÃ¥ÂÂãÂÂ3å¢Âå¼åÂÂÃ¥ÂÂï¼Â4èÂÂæÂÂç©åÂÂ',
`status` tinyint(4) NOT NULL COMMENT 'ç¶æ 1æªä¸Âæ¶2.å·²ä¸Âæ¶ 3.å·²ä¸Âæ¶',
`sort` int(10) DEFAULT '0' COMMENT 'æÂÂåºÂ',
`boundle` tinyint(4) unsigned DEFAULT '0' COMMENT 'æ¯å¦ç»ÂÃ¥ÂÂÃ¥ÂÂå 1æ¯ 0å¦',
`create_by` int(11) unsigned NOT NULL COMMENT 'Ã¥ÂÂ建人ID',
`update_by` int(11) unsigned DEFAULT NULL COMMENT 'ä¿®æ¹人ID',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
PRIMARY KEY(`id`) USING BTREE,
UNIQUE KEY `uk_sku_no` (`sku_no`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8mb4 COMMENT = 'Ã¥ÂÂÃ¥ÂÂ表'
5.2 sku表æ°æ®
5.3 skuå±Âæ§表
æ©å±Âæ§1ï¼Âå¨æÂÂæ éÂÂå¶åÂÂ建å±Âæ§æ°éÂÂãÂÂ
CREATE TABLE `sku_attr` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sku_no` varchar(32) DEFAULT '' COMMENT 'Ã¥ÂÂÃ¥ÂÂåºÂÃ¥ÂÂå·',
`sku_attrs` json DEFAULT NULL COMMENT 'skuå±Âæ§ï¼ÂÃ¥ÂÂÃ¥ÂÂå±Âæ§ï¼Â',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
PRIMARY KEY(`id`) USING BTREE,
UNIQUE KEY `uk_sku_no` (`sku_no`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8mb4 COMMENT = 'Ã¥ÂÂÃ¥ÂÂå±Âæ§表'
5.4 skuå±Âæ§æ°æ®
ä¸ÂÃ¥ÂÂ建æ°åÂÂ段ï¼Âè¿Âå¯以ç¨sqlæ¥询ï¼Âä½ å¾Âå°äºÂä»Âä¹Âå¯åÂÂï¼Â
5.5 skuå¨æÂÂ表åÂÂ
æ©å±Âæ§2ï¼Âæ ¹æ®ä¸ÂÃ¥ÂÂç±»ç®å 载ä¸ÂÃ¥ÂÂå±Âæ§渲æÂÂå¨æÂÂ表åÂÂãÂÂ
å°Âä¸Âç»Âå±Âæ§æÂÂè½½å°类ç®æÂ¥å®Âç°å¨æÂÂ表åÂÂï¼Âä½ å¾Âå°äºÂä»Âä¹Âå¯åÂÂï¼Â
5.6 Ã¥ÂÂÃ¥ÂÂç±»ç®堳èÂÂ
CREATE TABLE `category_to_goods` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`category_id` bigint(20) DEFAULT NULL COMMENT 'ç±»ç®id',
`goods_no` varchar(32) DEFAULT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂç¼Âå·',
`goods_type` tinyint(4) DEFAULT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂç±»åÂÂï¼Â1skuãÂÂ2spu',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
`is_deleted` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT 'æ¯å¦å é¤:0-å¦ï¼Â1-æ¯',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='ç±»ç®åÂÂÃ¥ÂÂÃ¥Â
³èÂÂ表';
5.7 ç»ÂÃ¥ÂÂsku堳系表
CREATE TABLE `bundle_to_sku` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`goods_id` bigint(20) DEFAULT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂid, ç»ÂÃ¥ÂÂÃ¥ÂÂÃ¥ÂÂid',
`bundle_id` bigint(20) DEFAULT NULL COMMENT 'ç»ÂÃ¥ÂÂÃ¥ÂÂÃ¥ÂÂid',
`quantity` int(11) DEFAULT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂæ°éÂÂ',
`entity_type` tinyint(4) DEFAULT '1' COMMENT 'Ã¥ÂÂÃ¥ÂÂçÂÂç±»åÂÂ:1sku,2ç»ÂÃ¥ÂÂÃ¥ÂÂÃ¥ÂÂ',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
`is_deleted` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT 'æ¯å¦å é¤:0-å¦ï¼Â1-æ¯',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_bundle_to_goods_bundle_id_index` (`bundle_id`) USING BTREE,
KEY `idx_bundle_to_goods_object_id_entity_type_index` (`object_id`,`entity_type`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='å¥Âè£Â
Ã¥ÂÂskuÃ¥Â
³èÂÂ表||å¥Âè£Â
Ã¥ÂÂspuÃ¥Â
³èÂÂ表';
5.8 ç»ÂÃ¥ÂÂsku堳系æ°æ®
skuæ°æ®
5.9 Ã¥ÂÂ建ç»ÂÃ¥ÂÂÃ¥ÂÂÃ¥ÂÂ表åÂÂ
6 å±Âæ§
6.1 å±Âæ§管çÂÂ
为äºÂæ¹便åÂÂÃ¥ÂÂ管çÂÂï¼ÂæÂÂ们éÂÂè¦Âå¨系ç»Âä¸Â建ç«Âä¸Âå¥Âå±Âæ§åºÂãÂÂå¨å®Âä¹Âä¸Â个å±Âæ§æ¶ï¼ÂéÂÂè¦ÂæÂÂè½½å¨类ç®ä¸Âï¼ÂåºåÂÂå±Âæ§åÂÂç±»ï¼Âå ³é®å±Âæ§ãÂÂéÂÂå®å±Âæ§ãÂÂéÂÂå ³é®å±Âæ§ãÂÂç¹æ®Âå±Âæ§ï¼Âï¼Â并确å®Âå±Âæ§å¼ãÂÂæ¾示类åÂÂï¼ÂÃ¥ÂÂéÂÂãÂÂå¤ÂéÂÂãÂÂå¯èªå®Âä¹Âï¼ÂãÂÂæ¯å¦忠填ãÂÂ
6.2 å±Âæ§çÂÂåºÂç¨åºæ¯
- æ·»å åÂÂÃ¥ÂÂæ¶åÂÂçÂÂÃ¥ÂÂÃ¥ÂÂ表åÂÂ渲æÂÂãÂÂå¨添å åÂÂÃ¥ÂÂæ¶ï¼Âå¯éÂÂè¿ÂéÂÂæ©å¶åÂÂç±»ç®ï¼Âå°ÂæÂÂè½½å°å¶åÂÂç±»ç®çÂÂå±Âæ§渲æÂÂå°表åÂÂä¸ÂãÂÂ
- å¨客æ·端对å¯根æ®ä¸ÂÃ¥ÂÂçÂÂå±Âæ§è¿Âè¡ÂæÂÂç´¢ãÂÂçÂÂéÂÂÃ¥ÂÂÃ¥ÂÂãÂÂ
- å¨spu页é¢ç¨æ·å¯å©ç¨åÂÂÃ¥ÂÂè§Âæ ¼(éÂÂå®å±Âæ§)æÂ¥å®Âä½Âåºä¸ÂÃ¥ÂÂçÂÂskuãÂÂ
- Ã¥ÂÂÃ¥ÂÂ详æ 页é¢å¯å±Â示åºåÂÂå°é Âç½®çÂÂå±Âæ§åÂÂæ°æ°æ®ãÂÂ
6.3 å±Âæ§表设计
CREATE TABLE `attribute` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(32) NOT NULL DEFAULT '' COMMENT 'å±Âæ§åÂÂ称',
`code` varchar(32) DEFAULT NULL COMMENT 'å±Âæ§代ç Â(éÂÂå¿Â
å¡«)',
`attr_type` tinyint(4) NOT NULL COMMENT 'å±Âæ§åºÂç¨:1Ã¥ÂÂÃ¥ÂÂå±Âæ§,2éÂÂå®å±Âæ§,3ç¹æ®Âå±Âæ§',
`value_type` tinyint(4) DEFAULT NULL COMMENT 'å±Âæ§å¼类åÂÂ:1ï¼ÂÃ¥ÂÂ符串,2ï¼Âæ°åÂÂ',
`fill_type` tinyint(4) NOT NULL COMMENT 'å¡«åÂÂç±»åÂÂ:1å¡«åÂÂÃ¥ÂÂï¼ÂÃ¥ÂÂ符ï¼Â,2å¡«åÂÂÃ¥ÂÂï¼Âä»Â
æ´æ°æ°åÂÂï¼Â,3éÂÂæ©åÂÂï¼ÂÃ¥ÂÂéÂÂå¼,éÂÂidï¼Â4éÂÂæ©åÂÂï¼Âå¤ÂéÂÂå¼,éÂÂidï¼Â,5å¤Âè¾ÂÃ¥Â
¥æ¡Âå±Â示åÂÂ',
`is_filter` tinyint(4) unsigned NOT NULL COMMENT 'æ¯å¦æ¯æÂÂÃ¥ÂÂå°çÂÂéÂÂ:0å¦ 1æ¯',
`status` tinyint(11) NOT NULL COMMENT 'ç¶æÂÂ:1 æªä¸Âæ¶ 2å·²ä¸Âæ¶ 3å·²ä¸Âæ¶',
`is_deleted` tinyint(4) unsigned NOT NULL COMMENT 'æ¯å¦å é¤',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'ä¿®æ¹æ¶é´',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COMMENT='å±Âæ§表';
6.4 å±Âæ§表æ°æ®
6.5 å±Âæ§æÂÂ举表设计
CREATE TABLE `attribute_enum` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`attr_id` bigint(20) NOT NULL COMMENT 'å±Âæ§id',
`attr_code` varchar(32) DEFAULT NULL,
`enum_code` bigint(11) DEFAULT NULL COMMENT 'enumcode',
`enum_value` varchar(32) NOT NULL COMMENT 'å±Âæ§æÂÂ举å¼åÂÂ称',
`sort` int(11) NOT NULL COMMENT 'æÂÂåºÂ',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='å±Âæ§æÂÂ举表';
6.6 å±Âæ§æÂÂ举表æ°æ®
6.7 å±Âæ§åÂÂç±»ç®堳èÂÂ表设计
CREATE TABLE `category_to_attr` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`category_id` bigint(11) NOT NULL COMMENT 'Ã¥ÂÂç±»id',
`attr_id` bigint(20) NOT NULL COMMENT 'å±Âæ§id',
`is_required` tinyint(4) unsigned NOT NULL COMMENT 'æ¯å¦å¿Â
å¡«',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Ã¥ÂÂç±»å±Âæ§åÂ
³èÂÂ表';
6.8 å¨æÂÂçÂÂæÂÂå±Âæ§表åÂÂ
å½Âå±Âæ§åºÂæÂÂ建å®ÂæÂÂÃ¥ÂÂï¼Âå°±ä¼Â被åÂÂ个å¶åÂÂç±»ç®è°Âç¨ï¼Âæ·»å åÂÂÃ¥ÂÂæ¶就éÂÂè¦Âå¡«åÂÂè¿ÂäºÂå±Âæ§ï¼ÂÃ¥ÂÂÃ¥ÂÂå°±æÂÂäºÂè½½ä½Âï¼Âå¦Âå¾æÂÂ示ãÂÂ
æ ¹æ®è¿ÂäºÂå±Âæ§便è½确å®ÂÃ¥ÂÂÃ¥ÂÂçÂÂå¯ä¸Âæ§ï¼ÂSKUï¼Âã æ·Âå®ÂçÂÂÃ¥ÂÂÃ¥ÂÂå±Âæ§ï¼Âç±»ç®âÂÂçÂᏣʉÂÂâÂÂâÂÂé£Âè¡£âÂÂï¼ ç¹å«éÂÂè¦Â注æÂÂçÂÂæ¯ä¸ÂäºÂè§Âæ ¼å±Âæ§ï¼Âå¦Âé¢Âè²ãÂÂå°ºç ÂçÂÂï¼ÂãÂÂå¾Âå¤Â产åÂÂæ å¤Âè§Âæ ¼ï¼Âä¾Âå¦Âè¡£æÂÂãÂÂéÂÂÃ¥ÂÂçÂÂãÂÂ以ä¸ÂÃ¥ÂÂç·éÂÂ为ä¾Âï¼ÂæÂÂé¢Âè²ï¼ÂÃ¥ÂÂ设ç½ãÂÂ红ã é»Â3ç§Âé¢Âè²ï¼Âï¼ÂæÂÂå°ºç Âï¼Âä»Â39ï½Â44å ±6ç§Âå°ºç Âï¼Âï¼Âé£ä¹Âè¿Â个SPUï¼Âç·éÂÂï¼ ä¸Âé¢就æÂÂ18个SKUãÂÂè¿ÂäºÂSKUçÂÂå±Âæ§é¤äºÂè§Âæ ¼å±Âæ§å¤Âï¼Âå ¶ä»Âå±Âæ§é½æ¯丠è´çÂÂï¼ÂæÂÂ以å¨æ°建åÂÂÃ¥ÂÂæ¶ï¼Âå¯èÂÂÃ¥ÂÂå°ä¸Âèµ·ï¼Âå ±ç¨堶ä»Âå±Âæ§ãÂÂ
7 SPU
7.1 SPUæ¦Â念
SPU æ¯æ ÂÃ¥ÂÂÃ¥ÂÂ产åÂÂÃ¥ÂÂå ÂãÂÂSPUä¸ÂSKUçÂÂ堳系æÂÂ许å¤Âç§Âï¼Âå¯以ä¸Â对å¤ÂãÂÂä¸Â对ä¸Âï¼ ç»Â大é¨åÂÂSPUä¸ÂSKUé½æ¯ä¸Â对ä¸Âï¼Âå¤Âè§Âæ ¼çÂÂSPUÃ¥ÂÂSKUä¹Âé´æ¯éÂÂè¿Âè§Âæ ¼å±Âæ§æÂ¥è¿ÂæÂ¥çÂÂãÂÂSPUçÂÂåºÂÃ¥ÂÂæ¯ç±堶对åºÂçÂÂSKUåºÂÃ¥ÂÂå ±åÂÂå³å®ÂçÂÂãÂÂ
以iPhone 11ï¼ÂSPUï¼Â为ä¾Âï¼Âè¿Â个SPUçÂÂè§Âæ ¼æÂÂå¤Âç§Âï¼Âé¢Âè²å å«ç½è²ãÂÂé»Âè²ãÂÂé»ÂéÂÂãÂÂç´«è²ãÂÂ绿è²ãÂÂ红è²çÂÂ6ç§Âï¼Âå åÂÂå å«32Gã 128GãÂÂ256GçÂÂ3ç§Âï¼Âï¼Â对åºÂ18ï¼Âå³3ÃÂ6ï¼Âç§ÂSKUãÂÂæ¯Âå¦ÂâÂÂiPhone 11 ç½è² 64GâÂÂãÂÂâÂÂiPhone 11 é»Âè² 64GâÂÂè¿Â两个SKUé½è½堷åÂÂå°å®Âç©ãÂÂä»ÂåºÂç³»ç»ÂãÂÂéÂÂè´Âç³»ç»ÂãÂÂåºÂÃ¥ÂÂç³»ç»ÂçÂÂç³»ç»Âé½æ¯主è¦Â管çÂÂSKUã å¨æ¥常è¿ÂèÂ¥ä¸Âä¹Âå¾Â常è§Âä¸Â个SKU对åºÂå¤Â个SPUãÂÂ
7.2 SPUÃ¥ÂÂè§Â格设计
CREATE TABLE `spu` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(64) DEFAULT NULL COMMENT 'spuÃ¥ÂÂ称',
`detail` varchar(256) DEFAULT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂä»Âç»Â',
`status` tinyint(4) DEFAULT NULL COMMENT 'ç¶æ 1æªä¸Âæ¶2.å·²ä¸Âæ¶ 2.å·²ä¸Âæ¶',
`spu_specs` json DEFAULT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂè§Âæ ¼',
`creator_id` bigint(20) DEFAULT NULL COMMENT 'Ã¥ÂÂ建èÂÂ
',
`is_deleted` tinyint(1) unsigned DEFAULT '0' COMMENT 'æ¯å¦å é¤ï¼Â0:æªå é¤ 1:å·²å é¤',
`sort` int(10) DEFAULT '0' COMMENT 'æÂÂåºÂ',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='spu';
7.3 SPUÃ¥ÂÂè§Âæ ¼æ°æ®
skuå±Âæ§æ°æ®
spu表åÂÂå¾çÂÂ
7.4 spuÃ¥ÂÂskuå ³èÂÂ表
CREATE TABLE `spu_to_sku` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`sku_no` varchar(32) NOT NULL DEFAULT '' COMMENT 'sku id',
`spu_no` varchar(32) NOT NULL DEFAULT '' COMMENT 'spu id',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT 'æ¯å¦å é¤ï¼Â0:æªå é¤ 1:å·²å é¤',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_spu_to_sku` (`spu_no`,`sku_no`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='spuÃ¥ÂÂÃ¥ÂÂÃ¥Â
³èÂÂ表';
8 价格设计
ä»·æ ¼å æ¬ï¼ÂæÂÂæ¬价ãÂÂÃ¥ÂÂä»·ãÂÂå®åÂÂä»·ãÂÂå®ÂéÂÂãÂÂè¨èÂÂéÂÂçÂÂä¼ÂéÂÂçÂÂéÂÂæ±ÂçÂÂä¸ÂæÂÂå¢Âå ï¼Â尤堶æ¯ä¸ÂäºÂå¨线æÂÂè²çÂÂÃ¥ÂÂç´è¡Âä¸ÂçµåÂÂ对éÂÂé¢Âä¼ÂæÂÂÃ¥ÂÂç§Âç©æ³ÂãÂÂ
CREATE TABLE `sku_price` (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`sku_id` bigint(11) unsigned NOT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂid',
`sku_no` varchar(20) NOT NULL DEFAULT '' COMMENT 'Ã¥ÂÂÃ¥ÂÂç¼Âå·',
`sku_type` tinyint(4) NOT NULL COMMENT 'Ã¥ÂÂÃ¥ÂÂç±»åÂÂ: 1Ã¥ÂÂsku 2ç»ÂÃ¥ÂÂsku',
`sub_goods` tinyint(4) NOT NULL COMMENT 'æ¯å¦åÂÂÃ¥ÂÂÃ¥ÂÂ:0å¦1æ¯',
`bundle_id` bigint(20) DEFAULT NULL COMMENT 'ç»ÂÃ¥ÂÂÃ¥ÂÂÃ¥ÂÂid é»Â认 空',
`price` decimal(10, 2) NOT NULL COMMENT 'ä»·æ ¼',
`price_type` varchar(32) NOT NULL COMMENT '价格类åÂÂæÂÂ举ï¼Â1.Ã¥ÂÂÃ¥ÂÂÃ¥ÂÂä»·REAL_PRICE 2.å®åÂÂä»·SELL_PRICE 3.å®åÂÂåºÂä»·... ï¼Â',
`currency_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT 'è´§å¸Âç±»åÂÂ:1人æ°Â帠2èÂÂæÂÂå¸Â',
`enable` tinyint(4) unsigned DEFAULT '1' COMMENT 'æ¯å¦å¯ç¨ 0 ä¸Âå¯ç¨ 1 å¯ç¨',
`create_by` int(11) unsigned NOT NULL COMMENT 'Ã¥ÂÂ建人ID',
`update_by` int(11) unsigned DEFAULT NULL COMMENT 'ä¿®æ¹人ID',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Ã¥ÂÂ建æ¶é´',
`update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_sku_id` (`sku_id`) USING BTREE,
KEY `idx_sku_no` (`sku_no`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8mb4 COMMENT = 'Ã¥ÂÂÃ¥ÂÂ价格表' "
æ©å±Âæ§3ï¼Âä¸ÂÃ¥ÂÂ建æ°åÂÂ段ï¼ÂÃ¥ÂÂä¸Â个åÂÂÃ¥ÂÂå¯æ¯æÂÂå¤Âç§Âä»·æ ¼åÂÂè´§å¸Âç§Âç±»
9 æ»ç»Â
æ¾ÂÂ详ç»Âä»Âç»ÂäºÂÃ¥ÂÂÃ¥ÂÂä¸Âå¿Â设计æ©å±Âæ§设计æÂÂæ³ï¼Â并å¨设计æ¹é¢åÂÂäºÂÃ¥ÂÂ维度åÂÂæÂÂãÂÂ
æ©å±Âæ§æ»ç»Âå¦Âä¸Âï¼Â
å¨æÂÂæ éÂÂå¶åÂÂ建å±Âæ§æ°éÂÂãÂÂ
æ ¹æ®ä¸ÂÃ¥ÂÂç±»ç®å 载ä¸ÂÃ¥ÂÂå±Âæ§渲æÂÂå¨æÂÂ表åÂÂãÂÂ
ä¸ÂÃ¥ÂÂ建æ°åÂÂ段ï¼ÂÃ¥ÂÂä¸Â个åÂÂÃ¥ÂÂå¯æ¯æÂÂå¤Âç§Âä»·æ ¼åÂÂè´§å¸Âç§Âç±»ãÂÂ
å¸ÂæÂÂèª己æ»ç»ÂçÂÂæ©å±Âæ§æÂÂæ³å¯以让大家å¨å¼ÂÃ¥ÂÂè¿Âç¨Âä¸ÂæÂÂæÂÂå¯åÂÂãÂÂ