1. 程式人生 > >(三)購物商城資料庫設計-商品表DDL(Mysql)

(三)購物商城資料庫設計-商品表DDL(Mysql)

大家好,之前我們設計了購物商城的商品表結構(原文連結),現在我們來具體實現表的DDL。對於建表規範,可以參考本系列第一篇文章:前期準備

新建一個數據庫,名字叫mall,基字符集:utf-8,:資料庫排序規則:utf-8_general_ci

對於商品模組,統一使用goods_做字首。

首先是兩個比較簡單的表:分類表和品牌表

  • 分類表:
CREATE TABLE `goods_category` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `category_name` varchar(50) NOT
NULL COMMENT '分類名稱', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='分類表';
  • 品牌表:
CREATE TABLE `goods_brand` (
  `id` bigint(20) unsigned NOT
NULL auto_increment, `brand_name` varchar(50) NOT NULL COMMENT '品牌名稱', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='品牌表';

接下來是SPU表:

CREATE
TABLE `goods_spu` ( `id` bigint(20) unsigned NOT NULL auto_increment, `spu_no` varchar(50) NOT NULL COMMENT '商品編號,唯一', `goods_name` varchar(50) NOT NULL COMMENT '商品名稱', `low_price` decimal(9,2) NOT NULL COMMENT '最低售價', `category_id` bigint(20) NOT NULL COMMENT '分類id', `brand_id` bigint(20) NOT NULL COMMENT '品牌id', `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`), UNIQUE KEY `uk_spu_no` (`spu_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='spu表';

然後是SPU規格相關的表:

  • 規格表:
CREATE TABLE `goods_spec` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `spec_no` varchar(50) NOT NULL COMMENT '規格編號',
  `spec_name` varchar(50) NOT NULL COMMENT '規格名稱',
  `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='規格表';
  • 規格值表:
CREATE TABLE `goods_spec_value` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `spec_id` bigint(20) NOT NULL COMMENT '規格id',
  `spec_value` varchar(50) NOT NULL COMMENT '規格值',
  `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='規格值表';
  • SPU規格表
CREATE TABLE `goods_spu_spec` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `spu_id` bigint(20) NOT NULL COMMENT 'spu_id',
  `spec_id` bigint(20) NOT NULL COMMENT 'spec_id',
  `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='spu規格表';

接下來是SKU相關的表:

  • SKU表:
CREATE TABLE `goods_sku` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `sku_no` varchar(50) NOT NULL COMMENT 'sku編號,唯一',
  `sku_name` varchar(50) NOT NULL COMMENT 'sku名稱(冗餘spu_name)',
  `price` decimal(9,2) NOT NULL COMMENT '售價',
  `stock` int(11) NOT NULL COMMENT '庫存',
  `shop_id` bigint(20) NOT NULL COMMENT '商鋪id,為0表示自營',
  `spu_id` bigint(20) NOT NULL COMMENT 'spu_id',
  `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sku表';
  • 商鋪表:
CREATE TABLE `shop_info` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `shop_name` varchar(50) NOT NULL COMMENT '店鋪名稱',
  `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='店鋪表';
  • 增值保障表:
CREATE TABLE `goods_safeguard` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `safeguard_name` varchar(50) NOT NULL COMMENT '保障名稱',
  `price` decimal(9,2) NOT NULL COMMENT '保障價格',
  `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='增值保障';
  • SKU增值保障
CREATE TABLE `goods_sku_safeguard` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `sku_id` bigint(20) NOT NULL COMMENT 'sku_id',
  `safeguard_id` bigint(20) NOT NULL COMMENT 'safeguard_id',
  `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sku增值保障';
  • SKU規格值表
CREATE TABLE `goods_sku_spec_value` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `spu_id` bigint(20) NOT NULL COMMENT 'sku_id',
  `spec_value_id` bigint(20) NOT NULL COMMENT '規格值id',
  `gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sku規格值';

相關推薦

購物商城資料庫設計-商品DDLMysql

大家好,之前我們設計了購物商城的商品表結構(原文連結),現在我們來具體實現表的DDL。對於建表規範,可以參考本系列第一篇文章:前期準備 下載地址:前往下載 新建一個數據庫,名字叫mall,基字符

購物商城資料庫設計-商品設計

大家好,今天我們來設計一下購物商城的商品表。 我們的目標是表結構能夠滿足下面這張圖的搜尋: 在設計表之前,我們先來了解下商品中的兩個概念:SPU和SKU SPU SPU(Standard Product Unit):標準化產品單元。是商品資訊聚合的

購物商城資料庫設計-使用者設計

今天我們來講下使用者表的設計,首先是使用者表 使用者表(member_info) --- id 手機號 登入密碼 郵箱 暱稱 頭像url 註冊時間 預設收貨地址id 接著應該有收貨地址表 使用者收貨地址表(member_shopping_addre

購物商城資料庫設計-訂單系統設計

接下來我們來一起設計下訂單表。 訂單系統在整個商城體系中的作用非常重要,因為一些業務的開展往往是圍繞訂單來展開的。因此設計好一個訂單系統是多麼的重要。 我們根據使用者的行為逐個設計表結構。 首先使用者瀏覽商品,將看中的商品加入到購物車,這裡應該有一張購

商城資料庫設計原則-商品模型的設計

 在電商系統中,商品模型至關重要,是整個電商的核心,下面通過一個簡單的分析,設計一個基礎的商品模型。 商品模型的演化     在以前,那時CMS很流行,最常見的模型是欄目-文章模型。於是做電商的時候,自然就繼承了這種一對多的關係。只是欄目變成了分類,文章變成了商品。商

資料庫系統概論第七章:資料庫設計

第七章:資料庫設計 7.1  資料庫設計概述  1、資料庫設計 (1)資料庫設計是指對於一個給定的應用環境,構造(設計)優化的資料庫邏輯模式和物理結構,並據此建立資料庫及其應用系統,使之能夠有效地儲存和管理資料,滿足各種使用者的應用需求,包括資訊管理要求和資料

資料庫設計與優化總結1

一、資料庫的設計的幾點措施 1.關聯表的關聯欄位名稱必須相同。 2.欄位的定義的前兩位是表名,第三位是下劃線,保證規範。 3.常用欄位採用固定單詞,如id 4.如果只有一個索引,索引的名字希望和表名相同,如果是多個,那麼就用表明下劃線欄位名。 5.關聯欄位儘可能為數字型別。

mongodb 3.2 實戰非關係型資料庫設計,如何進行mongo的資料庫設計

mongo 於2015,12,8 正式釋出了3.2的穩定版,這次重大的更新後,主要包括以下幾個比較令人興奮的點。 1.wiredtiger 引擎 在3.0釋出時,wiredtiger作為資料引擎之一。3.2之後wiredtiger作為建立資料庫的預設

基於ajax的層,實現資料庫增刪改查基礎一DAL

  三層的組成就是DAL,BLL,UI層和Model層。其中的DAL層是與資料庫連結,需要引用Model層,進行對資料的操作,但我們一般在此層不進行資料的處理。BLL層負責引用DAL和MODEL層,在

基於ajax的層,實現資料庫的增刪改查 BLL層編寫

由於前面我在DAL層對資料進行了處理,所以在此層就不用寫太多複雜程式碼,直接呼叫DAL傳入引數就可以,程式碼如下 //查詢單條         public int selectOne(string userid,string userpass)         {    

資料庫設計與效能優化

** 良好的資料庫設計能夠 **: 節省資料的儲存空間。 能夠保證資料的完整性。 方便進行資料庫應用系統的開發。 糟糕的資料庫設計: 資料冗餘、儲存空間浪費。 記憶體空間浪費。 資料更新和插入異常麻煩。 資料庫的生命週期: 1、需求分析

c++11隨機數------c++程序設計原理與實踐進階篇

ber linear 而在 希望 double 元素 light eal 區間   隨機數既是一個實用工具,也是一個數學問題,它高度復雜,這與它在現實世界中的重要性是相匹配的。在此我們只討論隨機數哦最基本的內容,這些內容可用於簡單的測試和仿真。在<random>

C語言 字串、結構體、共用體、輸入輸出

字串 字串是儲存了一些字元,最後以null(’/0’)結尾的一維字元陣列。 char str[6] = {'h','e','l','l','o','/0'}; char str[ ] = "hello" ; 還有一些字串操作函式: 1、strcpy(s1,s2) 複製s2到s1 2

Spring Boot 初級入門教程十七 —— 通過 Oracle 資料庫測試已整合 MyBatis附原始碼

在文章《Spring Boot 初級入門教程(十五) —— 整合 MyBatis》中,已經對 MyBatis 進行了整合,只是當時是連 MySQL 資料庫進行的測試。這一篇簡單通過 Oracle 資料庫進行測試,確保整合的 MyBatis 在連線 Oracle 資料庫時也是有效的。 一、新增

資料庫的建原則三大正規化

資料庫設計三大正規化 為了建立冗餘較小、結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計一個結構合理的關係型資料庫,必須滿足一定的正規化。 在實際開發中最為常見的設計正規化有三個: 第一正規化

從零開始之驅動發開、linux驅動十六、linux中common clock framework[1]_consoumer

部分內容來自下面幾位博主的文章,如有侵權,聯絡我刪除。 時鐘管理模組是linux系統為統一管理各硬體的時鐘而實現管理框架,負責所有模組的時鐘調節和電源管理。時鐘管理模組主要負責處理各硬體模組的工作頻率調節及電源切換管理。一個硬體模組要正常工作,必須先配置好硬體的

從零開始之驅動發開、linux驅動十九、Linux common clock framework(4)_總結

前面三節參考蝸窩大神的文章分析了Linux common clock framework的主要實現細節,本篇則是對前三篇從全域性的一個整合說明。   common clock framework主要維護著四條連結串列 static HLIST_HEAD(clk_root_l

從零開始之驅動發開、linux驅動十七、linux中common clock framework[2]_provider

因為裝置樹這裡還沒學習,所以這一節屬於provider章節的完全由蝸窩大神的文章來看。我在暫時只分析一些我知道的,同時對裝置樹這部分的原理和知識也也會盡快學習,補充這篇文章。 http://www.wowotech.net/pm_subsystem/clock_provider.html

面向物件-高階 __setattr__,__delattr__,__getattr__ 四 二次加工標準型別(包裝)

一 isinstance(obj,cls)和issubclass(sub,super) 二 反射 三 __setattr__,__delattr__,__getattr__ 四 二次加工標準型別(包裝) 五 __getattribute__ 六 描述符(__get__,__set__

Running migrations: No migrations to apply.django不能建立資料庫中的的問題

第一步:     刪除該app名字下的migrations下的__init__.py等檔案。 第二步:     進入資料庫,找到django_migrations的表,刪除該app名字的所有記