tft每日頭條

 > 生活

 > 産品sku分析該怎麼分析

産品sku分析該怎麼分析

生活 更新时间:2025-03-15 21:05:24

人人都可寫商城-商品規格/SKU設計方案,避免篇幅超級長,将分為六講。

某東截個圖

産品sku分析該怎麼分析(人人都可寫商城-商品規格)1

特意挑選,搞定編程,輕松購買無壓力

如圖,這是一個商品詳情頁,它包括商品名稱、價格、描述、規格等等數據信息。我們應該如何把這些數據存儲到數據庫,如何設計數據表,是一個很關鍵的問題。好的設計将大大減少開發、維護、運營等成本。

概念普及:SPU和SKU
  1. SPU:Standard Product Unit (标準産品單位) ,一組具有共同屬性的商品集。
    1. 如上圖:mac電腦,就是一個SPU(它不是一個商品,而是一組),它們都叫:“……MacBook Pro……”,但是它會有很多配置的區分。
    2. SPU是一個抽象的商品集概念,一般後台為:商品管理、商品列表。
  2. SKU:Stock Keeping Unit(庫存量單位),因具體特性不同而細分的每個商品(SPU),也叫商品規格。
    1. SKU才是具體要銷售的商品。
    2. 每一個SKU的價格、庫存可能會不一樣,用戶購買的是sku而不是SPU
數據庫設計分析

弄清楚了SPU和SKU的概念區分,設計數據庫表就會很簡單了,具體數據表設計方案請仔細閱讀。

  1. 商品表(ymkj_goods)

存儲商品的通用信息,商品圖片為一對多關系,這裡采取逗号分隔方式存儲。因為:①商品圖片不需要查詢設計。②避免聯查的問題。③少設計一個表複雜度就降低一倍。

CREATE TABLE `ymkj_goods` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '商品id', `goods_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品名稱', `user_id` char(32) NOT NULL COMMENT '創建人', `category_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '商品分類id', `category_ids` varchar(45) NOT NULL COMMENT '冗餘字段,用來存儲,分類全層級id逗号拼接後的字符串。為的是前端展示後端處理方便', `images` varchar(255) NOT NULL COMMENT '逗号隔開id', `selling_point` varchar(255) NOT NULL COMMENT '商品賣點', `spec_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '商品規格類型(10單規格 20多規格)', `deduct_stock_type` tinyint(3) unsigned NOT NULL DEFAULT '20' COMMENT '庫存計算方式(10下單減庫存 20付款減庫存)', `content` longtext NOT NULL COMMENT '商品詳情', `sales_initial` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '初始銷量,造假顯示', `sales_actual` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '實際銷量', `order` int(11) unsigned NOT NULL DEFAULT '100' COMMENT '商品排序(數字越小越靠前)', `delivery_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '配送模闆id', `status` tinyint(3) unsigned NOT NULL DEFAULT '20' COMMENT '商品狀态(10上架 20下架)', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `deleted_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), KEY `category_id` (`category_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COMMENT='商品'

  1. 商品SKU表(ymkj_goods_sku)

存儲商品對應的SKU信息,一對多關系。spec_sku_id這個字段存儲的是商品的具體規格值的關聯id,多個規格(屬性值)用下劃線分隔。spec_sku_id對應兩個直觀的對應解釋:①spec_sku_id對應的是ymkj_goods_spec_rel表中的spec_value_id這個字段值多個相連②spec_sku_id對應的是ymkj_spec_value表主鍵多個相連。

CREATE TABLE `ymkj_goods_sku` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '商品規格id/skuid', `goods_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '商品id', `goods_no` varchar(100) NOT NULL DEFAULT '' COMMENT '商品編碼', `price` int(10) NOT NULL DEFAULT '0' COMMENT '商品價格(分)', `line_price` int(10) NOT NULL COMMENT '劃線價(分)', `stock_num` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '當前庫存數量', `sku_sales` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'sku商品銷量', `weight` int(10) NOT NULL DEFAULT '0' COMMENT '商品重量(g)', `spec_sku_id` varchar(255) NOT NULL DEFAULT '' COMMENT '商品sku标識', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `goods_id` (`goods_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COMMENT='商品SKU'

  1. 商品規格關系表(ymkj_goods_spec_rel)

商品對應的規格關系,存儲商品對應的所有規格/屬性,不區分順序,順序通過ymkj_goods_sku表的spec_sku_id字段區分。spec_id存儲的是ymkj_spec表的主鍵id,spec_value_id存儲的是ymkj_spec_value表主鍵id。

CREATE TABLE `ymkj_goods_spec_rel` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵id', `goods_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '商品id', `spec_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '規格組id', `spec_value_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '規格值id', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COMMENT='商品規格關系'

  1. 規格組/屬性 名稱表(ymkj_spec)

存儲所有的屬性名稱,為的是相同屬性名稱不在重複創建。實際操作中,存在則關聯使用,不存在則創建并關聯使用,這個需要自己的業務設計。

CREATE TABLE `ymkj_spec` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '規格組id', `spec_name` varchar(255) NOT NULL DEFAULT '' COMMENT '規格組名稱', `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COMMENT='規格組/屬性(名稱)'

  1. 規格組/屬性 值表(ymkj_spec_value)

存儲所有的屬性值,為的是相同屬性值不在重複創建。實際操作中,存在則關聯使用,不存在則創建并關聯使用,這個需要自己的業務設計。

CREATE TABLE `ymkj_spec_value` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '規格值id', `spec_value` varchar(255) NOT NULL DEFAULT '' COMMENT '規格組名稱', `spec_id` int(11) NOT NULL COMMENT '規格id', `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), KEY `spec_id` (`spec_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COMMENT='規格組/屬性(值)'

總結
  1. 搞清楚關系,方案很重要,有了方案,實現就迎刃而解。
  2. 寫代碼并不難,一層窗戶紙,不要怕,直接幹。
  3. 從零學編程也沒有那麼遙不可及,見過很多從零學編程的都幹的挺好,相信自己。
  4. 不拼爹,靠自己,編程是一條不錯的路。

作者:xiaoyin199

來源:攸米教育

本文原創發布于攸米教育 ,轉載請注明出處,謝謝合作

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved