<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      常見(jiàn)電商項(xiàng)目的數(shù)據(jù)庫(kù)表設(shè)計(jì)(MySQL版)

      轉(zhuǎn)自:https://cloud.tencent.com/developer/article/1164332

      簡(jiǎn)介:

      目的:

      • 電商常用功能模塊的數(shù)據(jù)庫(kù)設(shè)計(jì)
      • 常見(jiàn)問(wèn)題的數(shù)據(jù)庫(kù)解決方案

      環(huán)境:

      • MySQL5.7
      • 圖形客戶端,SQLyog
      • Linux

      模塊:

      • 用戶:注冊(cè)、登陸
      • 商品:瀏覽、管理
      • 訂單:生成、管理
      • 倉(cāng)配:庫(kù)存、管理

      電商實(shí)例數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)

      電商項(xiàng)目用戶模塊

      • 用戶表涉及的實(shí)體
      • 改進(jìn)1:第三范式:將依賴傳遞的列分離出來(lái)。比如:登錄名<-用戶級(jí)別<-級(jí)別積分上限,級(jí)別積分下限
      • 改進(jìn)2:盡量做到冷熱數(shù)據(jù)的分離,減小表的寬度
      • 用戶登錄表(customer_login)
      CREATE TABLE customer_login(
        customer_id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '用戶ID',
        login_name VARCHAR(20) NOT NULL COMMENT '用戶登錄名',
        password CHAR(32) NOT NULL COMMENT 'md5加密的密碼',
        user_stats TINYINT NOT NULL DEFAULT 1 COMMENT '用戶狀態(tài)',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_customerid(customer_id)
      ) ENGINE = innodb COMMENT '用戶登錄表'
      • 用戶信息表(customer_inf)
      CREATE TABLE customer_inf(
        customer_inf_id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '自增主鍵ID',
        customer_id INT UNSIGNED NOT NULL COMMENT 'customer_login表的自增ID',
        customer_name VARCHAR(20) NOT NULL COMMENT '用戶真實(shí)姓名',
        identity_card_type TINYINT NOT NULL DEFAULT 1 COMMENT '證件類型:1 身份證,2 軍官證,3 護(hù)照',
        identity_card_no VARCHAR(20) COMMENT '證件號(hào)碼',
        mobile_phone INT UNSIGNED COMMENT '手機(jī)號(hào)',
        customer_email VARCHAR(50) COMMENT '郵箱',
        gender CHAR(1) COMMENT '性別',
        user_point INT NOT NULL DEFAULT 0 COMMENT '用戶積分',
        register_time TIMESTAMP NOT NULL COMMENT '注冊(cè)時(shí)間',
        birthday DATETIME COMMENT '會(huì)員生日',
        customer_level TINYINT NOT NULL DEFAULT 1 COMMENT '會(huì)員級(jí)別:1 普通會(huì)員,2 青銅,3白銀,4黃金,5鉆石',
        user_money DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '用戶余額',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_customerinfid(customer_inf_id)
      ) ENGINE = innodb COMMENT '用戶信息表';
      • 用戶級(jí)別表(customerlevelinf)
      CREATE TABLE customer_level_inf(
        customer_level TINYINT NOT NULL AUTO_INCREMENT COMMENT '會(huì)員級(jí)別ID',
        level_name VARCHAR(10) NOT NULL COMMENT '會(huì)員級(jí)別名稱',
        min_point INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '該級(jí)別最低積分',
        max_point INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '該級(jí)別最高積分',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_levelid(customer_level)
      ) ENGINE = innodb COMMENT '用戶級(jí)別信息表';
      • 用戶地址表(customer_addr)
      CREATE TABLE customer_addr(
        customer_addr_id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '自增主鍵ID',
        customer_id INT UNSIGNED NOT NULL COMMENT 'customer_login表的自增ID',
        zip SMALLINT NOT NULL COMMENT '郵編',
        province SMALLINT NOT NULL COMMENT '地區(qū)表中省份的ID',
        city SMALLINT NOT NULL COMMENT '地區(qū)表中城市的ID',
        district SMALLINT NOT NULL COMMENT '地區(qū)表中的區(qū)ID',
        address VARCHAR(200) NOT NULL COMMENT '具體的地址門(mén)牌號(hào)',
        is_default TINYINT NOT NULL COMMENT '是否默認(rèn)',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_customeraddid(customer_addr_id)
      ) ENGINE = innodb COMMENT '用戶地址表';
      • 用戶積分日志表(customerpointlog)
      CREATE TABLE customer_point_log(
        point_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '積分日志ID',
        customer_id INT UNSIGNED NOT NULL COMMENT '用戶ID',
        source TINYINT UNSIGNED NOT NULL COMMENT '積分來(lái)源:0訂單,1登陸,2活動(dòng)',
        refer_number INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '積分來(lái)源相關(guān)編號(hào)',
        change_point SMALLINT NOT NULL DEFAULT 0 COMMENT '變更積分?jǐn)?shù)',
        create_time TIMESTAMP NOT NULL COMMENT '積分日志生成時(shí)間',
        PRIMARY KEY pk_pointid(point_id)
      ) ENGINE = innodb COMMENT '用戶積分日志表';
      • 用戶余額變動(dòng)表(customerbalancelog)
      CREATE TABLE customer_balance_log(
        balance_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '余額日志ID',
        customer_id INT UNSIGNED NOT NULL COMMENT '用戶ID',
        source TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '記錄來(lái)源:1訂單,2退貨單',
        source_sn INT UNSIGNED NOT NULL COMMENT '相關(guān)單據(jù)ID',
        create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '記錄生成時(shí)間',
        amount DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '變動(dòng)金額',
        PRIMARY KEY pk_balanceid(balance_id)
      ) ENGINE = innodb COMMENT '用戶余額變動(dòng)表';
      • 用戶登陸日志表(customerloginlog)
      CREATE TABLE customer_login_log(
        login_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '登陸日志ID',
        customer_id INT UNSIGNED NOT NULL COMMENT '登陸用戶ID',
        login_time TIMESTAMP NOT NULL COMMENT '用戶登陸時(shí)間',
        login_ip INT UNSIGNED NOT NULL COMMENT '登陸IP',
        login_type TINYINT NOT NULL COMMENT '登陸類型:0未成功,1成功',
        PRIMARY KEY pk_loginid(login_id)
      ) ENGINE = innodb COMMENT '用戶登陸日志表';

      Hash分區(qū)表

      分區(qū)表特點(diǎn):邏輯上為一個(gè)表,在物理上存儲(chǔ)在多個(gè)文件中

      CREATE TABLE customer_login_log(
        login_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '登陸日志ID',
        customer_id INT UNSIGNED NOT NULL COMMENT '登陸用戶ID',
        login_time TIMESTAMP NOT NULL COMMENT '用戶登陸時(shí)間',
        login_ip INT UNSIGNED NOT NULL COMMENT '登陸IP',
        login_type TINYINT NOT NULL COMMENT '登陸類型:0未成功,1成功',
        PRIMARY KEY pk_loginid(login_id)
      ) ENGINE = innodb COMMENT '用戶登陸日志表'
      PARTITION BY HASH(customer_id) PARTITIONS 4;

      區(qū)別就在于加了 PARTITION這個(gè)命令。 文件結(jié)構(gòu)上的區(qū)別

      • 普通表結(jié)構(gòu):
        • customer_login_log.frm
        • customer_login_log.ibd
      • 分區(qū)表結(jié)構(gòu):
        • customer_login_log.frm
        • customer_login_log#P#p0.ibd
        • customer_login_log#P#p1.ibd
        • customer_login_log#P#p2.ibd
        • customer_login_log#P#p3.ibd

      按HASH分區(qū)的特點(diǎn)

      • 根據(jù)MOD(分區(qū)建,分區(qū)數(shù))的值把數(shù)據(jù)行存儲(chǔ)到表的不同分區(qū)
      • 數(shù)據(jù)可以平均的分布在各個(gè)分區(qū)中
      • HASH分區(qū)的鍵值必須是一個(gè)INT類型的值,或是通過(guò)函數(shù)可以轉(zhuǎn)為INT類型比如 UNIX_TIMESTAMP(login_time)

      Range分區(qū)表

      特點(diǎn):

      • 根據(jù)分區(qū)鍵值的范圍把數(shù)據(jù)行存儲(chǔ)到表的不同分區(qū)中
      • 多個(gè)分區(qū)的范圍要連續(xù),但是不能重復(fù)
      • 默認(rèn)情況下使用VALUES LESS THAN屬性,即每個(gè)分區(qū)不包括指定的那個(gè)值
      CREATE TABLE customer_login_log(
        login_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '登陸日志ID',
        customer_id INT UNSIGNED NOT NULL COMMENT '登陸用戶ID',
        login_time TIMESTAMP NOT NULL COMMENT '用戶登陸時(shí)間',
        login_ip INT UNSIGNED NOT NULL COMMENT '登陸IP',
        login_type TINYINT NOT NULL COMMENT '登陸類型:0未成功,1成功',
        PRIMARY KEY pk_loginid(login_id)
      ) ENGINE = innodb COMMENT '用戶登陸日志表'
      PARTITION BY RANGE (customer_id) (
          PARTITION p0 VALUES LESS THAN (10000),
          PARTITION p1 VALUES LESS THAN (10000),
          PARTITION p2 VALUES LESS THAN (10000),
          PARTITION p3 VALUES LESS THAN MAXVALUE
      );

      Range分區(qū)的適用范圍

      • 分區(qū)鍵為日期或是時(shí)間類型
      • 所有SELECT查詢中都包括分區(qū)鍵

      LIST分區(qū)

      特點(diǎn):

      • 按分區(qū)鍵取值的列表進(jìn)行分區(qū)
      • 同范圍分區(qū)一樣,各分區(qū)的列表值不能重復(fù)
      • 每一行數(shù)據(jù)必須能找到對(duì)應(yīng)的分區(qū)列表,否則數(shù)據(jù)插入失敗
      CREATE TABLE customer_login_log(
        login_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '登陸日志ID',
        customer_id INT UNSIGNED NOT NULL COMMENT '登陸用戶ID',
        login_time TIMESTAMP NOT NULL COMMENT '用戶登陸時(shí)間',
        login_ip INT UNSIGNED NOT NULL COMMENT '登陸IP',
        login_type TINYINT NOT NULL COMMENT '登陸類型:0未成功,1成功',
        PRIMARY KEY pk_loginid(login_id)
      ) ENGINE = innodb COMMENT '用戶登陸日志表'
      PARTITION BY LIST (login_type) (
          PARTITION p0 VALUES (1,3,5,7,9),
          PARTITION p1 VALUES (2,4,6,8)
      );

      如何選擇正確的分區(qū)類型

      如何為customerloginlog表分區(qū)

      業(yè)務(wù)場(chǎng)景:

      • 用戶每次登錄都會(huì)記錄
      • 日志保存一年,一年后可刪除

      解決:

      • 使用RANGE范圍分區(qū)
      • 以login_type作為分區(qū)鍵

      如何查看分區(qū)是否正確:

      • 使用SELECT查詢 information_schema.PARTITIONS
      • 這里不使用MAXVALUE,防止后續(xù)的日期全部歸到一個(gè)分區(qū)中,而是使用定時(shí)計(jì)劃修改增加分區(qū) ALTER TABLE customer_login_log ADD PARTITION(PARTITION p4 VALUES LESS THAN(2018))
      • 刪除以前一年的分區(qū) ALTER TABLE customer_login_log DROP PARTITION p0;
      • 過(guò)期數(shù)據(jù)歸檔
        • 建立用戶登陸日志歸檔 CREATE TABLE arch_customer_login_log(login_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT'登陸日志ID',customer_id INT UNSIGNED NOT NULL COMMENT'登陸用戶ID',login_time TIMESTAMP NOT NULL COMMENT'用戶登陸時(shí)間',login_ip INT UNSIGNED NOT NULL COMMENT'登陸IP',login_type TINYINT NOT NULL COMMENT'登陸類型:0未成功,1成功',PRIMARY KEY pk_loginid(login_id))ENGINE=innodb COMMENT'用戶登陸日志歸檔表'
        • 歸檔操作: ALTER TABLE customer_login_log EXCHANGE PARTITION p1 WITH TABLE arch_customer_login_log
        • 遷移后刪除: ALTER TABLE customer_login_log DROP PARTITION p2
        • 根據(jù)需要可以把歸檔的表引擎改為 ARCHIVE
        • 分區(qū)數(shù)據(jù)歸檔遷移條件
        • 操作步驟
        1. mysql >= 5.7
        2. 結(jié)構(gòu)相同
        3. 歸檔到的數(shù)據(jù)表一定是非分區(qū)表
        4. 非臨時(shí)表;不能有外鍵約束
        5. 歸檔引擎要是:archive

      使用分區(qū)表的注意事項(xiàng)

      • 結(jié)合業(yè)務(wù)場(chǎng)景選擇分區(qū)鍵,避免跨分區(qū)查詢
      • 對(duì)分區(qū)表進(jìn)行查詢最好在WHERE從句中包含分區(qū)鍵
      • 具有主鍵或唯一索引的表,主鍵或唯一索引必須是分區(qū)鍵的一部分

      商品實(shí)體

      • 品牌信息表(brand_info)
      CREATE TABLE brand_info(
        brand_id SMALLINT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '品牌ID',
        brand_name VARCHAR(50) NOT NULL COMMENT '品牌名稱',
        telephone VARCHAR(50) NOT NULL COMMENT '聯(lián)系電話',
        brand_web VARCHAR(100) COMMENT '品牌網(wǎng)絡(luò)',
        brand_logo VARCHAR(100) COMMENT '品牌logo URL',
        brand_desc VARCHAR(150) COMMENT '品牌描述',
        brand_status TINYINT NOT NULL DEFAULT 0 COMMENT '品牌狀態(tài),0禁用,1啟用',
        brand_order TINYINT NOT NULL DEFAULT 0 COMMENT '排序',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_brandid (brand_id)
      )ENGINE=innodb COMMENT '品牌信息表';
      • 分類信息表(product_category)
      CREATE TABLE product_category(
        category_id SMALLINT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '分類ID',
        category_name VARCHAR(10) NOT NULL COMMENT '分類名稱',
        category_code VARCHAR(10) NOT NULL COMMENT '分類編碼',
        parent_id SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '父分類ID',
        category_level TINYINT NOT NULL DEFAULT 1 COMMENT '分類層級(jí)',
        category_status TINYINT NOT NULL DEFAULT 1 COMMENT '分類狀態(tài)',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT  '最后修改時(shí)間',
        PRIMARY KEY pk_categoryid(category_id)
      )ENGINE=innodb COMMENT '商品分類表'
      • 供應(yīng)商信息表(supplier_info)
      CREATE TABLE supplier_info(
        supplier_id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '供應(yīng)商ID',
        supplier_code CHAR(8) NOT NULL COMMENT '供應(yīng)商編碼',
        supplier_name CHAR(50) NOT NULL COMMENT '供應(yīng)商名稱',
        supplier_type TINYINT NOT NULL COMMENT '供應(yīng)商類型:1.自營(yíng),2.平臺(tái)',
        link_man VARCHAR(10) NOT NULL COMMENT '供應(yīng)商聯(lián)系人',
        phone_number VARCHAR(50) NOT NULL COMMENT '聯(lián)系電話',
        bank_name VARCHAR(50) NOT NULL COMMENT '供應(yīng)商開(kāi)戶銀行名稱',
        bank_account VARCHAR(50) NOT NULL COMMENT '銀行賬號(hào)',
        address VARCHAR(200) NOT NULL COMMENT '供應(yīng)商地址',
        supplier_status TINYINT NOT NULL DEFAULT 0 COMMENT '狀態(tài):0禁止,1啟用',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT  '最后修改時(shí)間',
        PRIMARY KEY pk_supplierid(supplier_id)
      ) ENGINE = innodb COMMENT '供應(yīng)商信息表';
      • 商品信息表(product_info)
        • 寬度較寬,字段差不多一起使用
        • 可以被緩存
      CREATE TABLE product_info(
        product_id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '商品ID',
        product_core CHAR(16) NOT NULL COMMENT '商品編碼',
        product_name VARCHAR(20) NOT NULL COMMENT '商品名稱',
        bar_code VARCHAR(50) NOT NULL COMMENT '國(guó)條碼',
        brand_id INT UNSIGNED NOT NULL COMMENT '品牌表的ID',
        one_category_id SMALLINT UNSIGNED NOT NULL COMMENT '一級(jí)分類ID',
        two_category_id SMALLINT UNSIGNED NOT NULL COMMENT '二級(jí)分類ID',
        three_category_id SMALLINT UNSIGNED NOT NULL COMMENT '三級(jí)分類ID',
        supplier_id INT UNSIGNED NOT NULL COMMENT '商品的供應(yīng)商ID',
        price DECIMAL(8,2) NOT NULL COMMENT '商品銷(xiāo)售價(jià)格',
        average_cost DECIMAL(18,2) NOT NULL COMMENT '商品加權(quán)平均成本',
        publish_status TINYINT NOT NULL DEFAULT 0 COMMENT '上下架狀態(tài):0下架1上架',
        audit_status TINYINT NOT NULL DEFAULT 0 COMMENT '審核狀態(tài):0未審核,1已審核',
        weight FLOAT COMMENT '商品重量',
        length FLOAT COMMENT '商品長(zhǎng)度',
        height FLOAT COMMENT '商品高度',
        width FLOAT COMMENT '商品寬度',
        color_type ENUM('紅','黃','藍(lán)','黑'),
        production_date DATETIME NOT NULL COMMENT '生產(chǎn)日期',
        shelf_life INT NOT NULL COMMENT '商品有效期',
        descript TEXT NOT NULL COMMENT '商品描述',
        indate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '商品錄入時(shí)間',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_productid(product_id)
      ) ENGINE = innodb COMMENT '商品信息表';
      • 商品圖片表(productpicinfo)
      CREATE TABLE product_pic_info(
        product_pic_id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '商品圖片ID',
        product_id INT UNSIGNED NOT NULL COMMENT '商品ID',
        pic_desc VARCHAR(50) COMMENT '圖片描述',
        pic_url VARCHAR(200) NOT NULL COMMENT '圖片URL',
        is_master TINYINT NOT NULL DEFAULT 0 COMMENT '是否主圖:0.非主圖1.主圖',
        pic_order TINYINT NOT NULL DEFAULT 0 COMMENT '圖片排序',
        pic_status TINYINT NOT NULL DEFAULT 1 COMMENT '圖片是否有效:0無(wú)效 1有效',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT  '最后修改時(shí)間',
        PRIMARY KEY pk_picid(product_pic_id)
      )ENGINE=innodb COMMENT '商品圖片信息表';
      • 商品評(píng)論表(product_comment)
      CREATE TABLE product_comment(
        comment_id INT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '評(píng)論ID',
        product_id INT UNSIGNED NOT NULL COMMENT '商品ID',
        order_id BIGINT UNSIGNED NOT NULL COMMENT '訂單ID',
        customer_id INT UNSIGNED NOT NULL COMMENT '用戶ID',
        title VARCHAR(50) NOT NULL COMMENT '評(píng)論標(biāo)題',
        content VARCHAR(300) NOT NULL COMMENT '評(píng)論內(nèi)容',
        audit_status TINYINT NOT NULL COMMENT '審核狀態(tài):0未審核,1已審核',
        audit_time TIMESTAMP NOT NULL COMMENT '評(píng)論時(shí)間',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_commentid(comment_id)
      ) ENGINE = innodb COMMENT '商品評(píng)論表';

      訂單模塊

      • 訂單主表(order_master)
      CREATE TABLE order_master(
        order_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '訂單ID',
        order_sn BIGINT UNSIGNED NOT NULL COMMENT '訂單編號(hào) yyyymmddnnnnnnnn',
        customer_id INT UNSIGNED NOT NULL COMMENT '下單人ID',
        shipping_user VARCHAR(10) NOT NULL COMMENT '收貨人姓名',
        province SMALLINT NOT NULL COMMENT '省',
        city SMALLINT NOT NULL COMMENT '市',
        district SMALLINT NOT NULL COMMENT '區(qū)',
        address VARCHAR(100) NOT NULL COMMENT '地址',
        payment_method TINYINT NOT NULL COMMENT '支付方式:1現(xiàn)金,2余額,3網(wǎng)銀,4支付寶,5微信',
        order_money DECIMAL(8,2) NOT NULL COMMENT '訂單金額',
        district_money DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '優(yōu)惠金額',
        shipping_money DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '運(yùn)費(fèi)金額',
        payment_money DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '支付金額',
        shipping_comp_name VARCHAR(10) COMMENT '快遞公司名稱',
        shipping_sn VARCHAR(50) COMMENT '快遞單號(hào)',
        create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '下單時(shí)間',
        shipping_time DATETIME COMMENT '發(fā)貨時(shí)間',
        pay_time DATETIME COMMENT '支付時(shí)間',
        receive_time DATETIME COMMENT '收貨時(shí)間',
        order_status TINYINT NOT NULL DEFAULT 0 COMMENT '訂單狀態(tài)',
        order_point INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '訂單積分',
        invoice_time VARCHAR(100) COMMENT '發(fā)票抬頭',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_orderid(order_id)
      )ENGINE = innodb COMMENT '訂單主表';
      • 訂單詳情表(order_detail)
      CREATE TABLE order_detail(
        order_detail_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '訂單詳情表ID',
        order_id INT UNSIGNED NOT NULL COMMENT '訂單表ID',
        product_id INT UNSIGNED NOT NULL COMMENT '訂單商品ID',
        product_name VARCHAR(50) NOT NULL COMMENT '商品名稱',
        product_cnt INT NOT NULL DEFAULT 1 COMMENT '購(gòu)買(mǎi)商品數(shù)量',
        product_price DECIMAL(8,2) NOT NULL COMMENT '購(gòu)買(mǎi)商品單價(jià)',
        average_cost DECIMAL(8,2) NOT NULL COMMENT '平均成本價(jià)格',
        weight FLOAT COMMENT '商品重量',
        fee_money DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '優(yōu)惠分?jǐn)偨痤~',
        w_id INT UNSIGNED NOT NULL COMMENT '倉(cāng)庫(kù)ID',
          modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_orderdetailid(order_detail_id)
      )ENGINE = innodb COMMENT '訂單詳情表'
      • 購(gòu)物車(chē)表(order_cart)
      CREATE TABLE order_cart(
        cart_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '購(gòu)物車(chē)ID',
        customer_id INT UNSIGNED NOT NULL COMMENT '用戶ID',
        product_id INT UNSIGNED NOT NULL COMMENT '商品ID',
        product_amount INT NOT NULL COMMENT '加入購(gòu)物車(chē)商品數(shù)量',
        price DECIMAL(8,2) NOT NULL COMMENT '商品價(jià)格',
        add_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '加入購(gòu)物車(chē)時(shí)間',
            modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_cartid(cart_id)
      ) ENGINE = innodb COMMENT '購(gòu)物車(chē)表';
      • 倉(cāng)庫(kù)信息表(warehouse_info)
      CREATE TABLE warehouse_info(
        w_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '倉(cāng)庫(kù)ID',
        warehouse_sn CHAR(5) NOT NULL COMMENT '倉(cāng)庫(kù)編碼',
        warehoust_name VARCHAR(10) NOT NULL COMMENT '倉(cāng)庫(kù)名稱',
        warehouse_phone VARCHAR(20) NOT NULL COMMENT '倉(cāng)庫(kù)電話',
        contact VARCHAR(10) NOT NULL COMMENT '倉(cāng)庫(kù)聯(lián)系人',
        province SMALLINT NOT NULL COMMENT '省',
        city SMALLINT NOT NULL COMMENT '市',
        distrct SMALLINT NOT NULL COMMENT '區(qū)',
        address VARCHAR(100) NOT NULL COMMENT '倉(cāng)庫(kù)地址',
        warehouse_status TINYINT NOT NULL DEFAULT 1 COMMENT '倉(cāng)庫(kù)狀態(tài):0禁用,1啟用',
              modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_wid(w_id)
      )ENGINE = innodb COMMENT '倉(cāng)庫(kù)信息表';
      • 商品庫(kù)存表(warehouse_product)
      CREATE TABLE warehouse_product(
        wp_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '商品庫(kù)存ID',
        product_id INT UNSIGNED NOT NULL COMMENT '商品ID',
        w_id SMALLINT UNSIGNED NOT NULL COMMENT '倉(cāng)庫(kù)ID',
        current_cnt INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '當(dāng)前商品數(shù)量',
        lock_cnt INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '當(dāng)前占用數(shù)據(jù)',
        in_transit_cnt INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '在途數(shù)據(jù)',
        average_cost DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '移動(dòng)加權(quán)成本',
        modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_wpid(wp_id)
      )ENGINE = innodb COMMENT '商品庫(kù)存表'
      • 物流公司信息表(shipping_info)
      CREATE TABLE shipping_info(
        ship_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
        ship_name VARCHAR(20) NOT NULL COMMENT '物流公司名稱',
        ship_contact VARCHAR(20) NOT NULL COMMENT '物流公司聯(lián)系人',
        telephone VARCHAR(20) NOT NULL COMMENT '物流公司聯(lián)系電話',
        price DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '配送價(jià)格',
          modified_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時(shí)間',
        PRIMARY KEY pk_shipid(ship_id)
      )ENGINE = innodb COMMENT '物流公司信息表';

      DB規(guī)劃

      • 為以后數(shù)據(jù)庫(kù)遷移提供方便
      • 避免跨庫(kù)操作,把經(jīng)常一起關(guān)聯(lián)查詢的表放到一個(gè)DB中
      • 為方便識(shí)別表所在的DB,在表名前增加庫(kù)名前綴
      • 用戶數(shù)據(jù)庫(kù)(mccustomerdb)
        • customerinf
        • customer_login
        • customerlevelinf
        • customerloginlog
        • customerpointlog
        • customerbalancelog
      • 商品數(shù)據(jù)庫(kù)(mcproductdb)
        • productinfo
        • productpicinfo
        • productcategory
        • productsupplierinfo
        • productcomment
        • productbrandinfo
      • 訂單數(shù)據(jù)庫(kù)(mcorderdb)
        • ordermaster
        • orderdetail
        • ordercustomeraddr
        • ordercart
        • shippinginfo
        • warehouseinfo
        • warehouse_product

      參考

      1. 高性能可擴(kuò)展MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)及架構(gòu)優(yōu)化 電商項(xiàng)目,sqlercn,https://coding.imooc.com/class/79.html
      posted @ 2020-05-11 18:38  myd620  閱讀(2624)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲av无码成人精品区一区| 久久99久国产麻精品66| 日韩一区在线中文字幕| 黄色免费在线网址| 在线看无码的免费网站| 国产精品无码一区二区在线| 亚洲男人的天堂网站| 国产精品大全中文字幕| 隔壁老王国产在线精品| 欧美黑人又粗又大又爽免费| 99午夜精品亚洲一区二区| 久久国产免费直播| 免费国产一级 片内射老| 国产熟女肥臀精品国产馆乱| 国产免费AV片在线看| 国产精品日日摸夜夜添夜夜添2021 | 国产精品麻豆欧美日韩ww | 成全高清在线播放电视剧 | 少妇无码太爽了在线播放| 亚洲精品日韩久久精品| 深夜在线观看免费av| 美女裸体十八禁免费网站| 精品久久丝袜熟女一二三| 奇米四色7777中文字幕| 亚洲 自拍 另类小说综合图区| 国产成人精品视频国产| 2021国产成人精品久久| 免费大片av手机看片高清| 91久久亚洲综合精品成人| 国产av不卡一区二区| 彭水| 亚洲人成人网站色www| 又色又爽又黄的视频网站 | 亚洲av永久无码天堂影院| 久热色精品在线观看视频| 日本中文字幕有码在线视频| 97久久精品亚洲中文字幕无码 | 久久精品国产精品亚洲 | 午夜精品一区二区三区免费视频| 亚洲欧美牲交| 国产一区二区一卡二卡|