MySQL數據表設計 系統的營銷功能 優惠券、客戶使用優惠券的設計

系統的營銷功能

營銷功能概述:

系統的營銷功能主要是:市場活動管理、營銷自動化、銷售線索管理以及數據分析和報告等。?ToC?(Consumer):面向個人消費者,滿足日常消費需求。

?優惠券的種類:

ToC的系統中,經常需要使用優惠券搞營銷活動,而優惠券的種類一般分為:1、抵扣券(現金券),2、折扣券,3、滿減券。

抵扣券的含義:客戶的訂單需要支付10塊,抵扣券面值5塊,客戶就使用這個抵扣券后再支付5塊。

折扣券的含義:客戶的訂單需要支付10塊,折扣券打5折,客戶就使用這個折扣券后再支付5塊。

滿減券的含義:客戶的訂單需要支付10塊,滿減券為滿10減5,客戶就使用這個滿減券后再支付5塊。

優惠券的主體:

優惠券隸屬于誰,誰發放優惠券,ToC的系統中,經常有多個加盟商,這個優惠券可能是隸屬于某個加盟商,也可能是平臺。

客戶使用優惠券:

營銷、促銷此類的活動,通常讓利于客戶,手段通常是優惠券,有了優惠券后需要給到客戶,這里給到,可能是系統了發放給了客戶(后臺用戶發放),也可能是低價售出(訂單方式)。

優惠券是有價的:

優惠券是有價的,在支付時,是當錢花的,當設定好一個營銷活動時,除了時間范圍,還有需要的計算出來的有所的費用。

系統在接入支付功能時,往往是第三方提供,有的本身就包含了結算、分賬這些功能,往往可能會出現分賬時金額不夠導致失敗。

第三方的支付系統,往往提供:錢包(備用金賬戶),各個主體之間進的賬戶,按合作進行分層,當備用金余額不夠充足,優惠力度過大,導致分賬時金額不足,也需要引起注意。

數據庫表設計

活動表:某個時間段針對客戶搞一個營銷活動,需要記錄是什么樣的活動,多長時間,總計花費多少錢。

CREATE TABLE `t_activity` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`name` VARCHAR(200) NULL DEFAULT NULL COMMENT '活動的名稱' COLLATE 'utf8mb4_general_ci',`start_time` TIMESTAMP NULL DEFAULT NULL COMMENT '活動的起始時間',`end_time` TIMESTAMP NULL DEFAULT NULL COMMENT '活動的結束時間',`status` TINYINT(4) NULL DEFAULT NULL COMMENT '狀態:0、初始化,1、啟動,2、完成',`explain` TEXT NULL DEFAULT NULL COMMENT '活動說明' COLLATE 'utf8mb4_general_ci',`director` INT(11) NULL DEFAULT NULL COMMENT '責任人ID',`director_name` INT(11) NULL DEFAULT NULL COMMENT '責任人名稱',`required_fees` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '開始前所需的費用',`finished_fees` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '結束后使用了的費用',`create_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '創建人' COLLATE 'utf8mb4_general_ci',`create_time` TIMESTAMP NULL DEFAULT NULL COMMENT '創建時間',`update_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '更新人' COLLATE 'utf8mb4_general_ci',`update_time` TIMESTAMP NULL DEFAULT NULL COMMENT '更新時間',`logic_deleted` TINYINT(4) NULL DEFAULT NULL COMMENT '是否刪除:0,未刪除,1,已刪除',`delete_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '刪除人' COLLATE 'utf8mb4_general_ci',`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '刪除時間',PRIMARY KEY (`id`) USING BTREE
)
COMMENT='活動表'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

優惠券表:活動的體現形式就是優惠券,優惠券是有價的,且有數量的。

CREATE TABLE `t_coupon` (`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`franchisee_id` BIGINT(20) NULL DEFAULT NULL COMMENT '加盟商ID',`grade` TINYINT(4) NULL DEFAULT NULL COMMENT '優惠券級別:1,平臺優惠券、2,加盟商優惠券',`name` VARCHAR(50) NULL DEFAULT NULL COMMENT '優惠券名稱' COLLATE 'utf8mb4_general_ci',`type` TINYINT(4) NULL DEFAULT NULL COMMENT '優惠券類型(1、抵扣券(現金券),2、折扣券,3、滿減券)',`type_name` TINYINT(4) NULL DEFAULT NULL COMMENT '優惠券類型名稱',`cash_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '抵扣券(現金券),抵扣金額',`cash_discount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '折扣券,打折比例',`full_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '滿多少金額',`subtract_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '減多少金額',`explain` TEXT NULL DEFAULT NULL COMMENT '使用說明' COLLATE 'utf8mb4_general_ci',`inventory_quantity` INT(11) NULL DEFAULT NULL COMMENT '庫存數量',`remaining_quantity` INT(11) NULL DEFAULT NULL COMMENT '現存數量',`create_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '創建用戶' COLLATE 'utf8mb4_general_ci',`create_time` TIMESTAMP NULL DEFAULT NULL COMMENT '創建時間',`update_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '更新用戶' COLLATE 'utf8mb4_general_ci',`update_time` TIMESTAMP NULL DEFAULT NULL COMMENT '更新時間',`logic_deleted` TINYINT(4) NULL DEFAULT NULL COMMENT '是否刪除:0,未刪除,1,已刪除',`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '刪除時間',`delete_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '刪除用戶' COLLATE 'utf8mb4_general_ci',PRIMARY KEY (`id`) USING BTREE,INDEX `grade` (`grade`) USING BTREE,INDEX `type` (`type`) USING BTREE,INDEX `franchisee_id` (`franchisee_id`) USING BTREE
)
COMMENT='優惠券'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

優惠券流轉表:活動時針對客戶的,流轉表記錄的是優惠券如何給到客戶的,可能是后臺用戶主動發給客戶,也可能是客戶低價購買到自己手中,也可能是別的什么方式。

CREATE TABLE `t_coupon_flow` (`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`flow_no` VARCHAR(50) NULL DEFAULT NULL COMMENT '流轉編號' COLLATE 'utf8mb4_general_ci',`method` VARCHAR(50) NULL DEFAULT NULL COMMENT '流轉方式' COLLATE 'utf8mb4_general_ci',`customer_id` BIGINT(20) NULL DEFAULT NULL COMMENT '客戶ID',`status` TINYINT(4) NULL DEFAULT NULL COMMENT '流轉狀態:0:新建,1:完成',`remarks` VARCHAR(200) NULL DEFAULT NULL COMMENT '備注' COLLATE 'utf8mb4_general_ci',`content` TEXT NULL DEFAULT NULL COMMENT '操作內容' COLLATE 'utf8mb4_general_ci',`create_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '創建用戶' COLLATE 'utf8mb4_general_ci',`create_time` TIMESTAMP NULL DEFAULT NULL COMMENT '創建時間',`modify_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '修改用戶' COLLATE 'utf8mb4_general_ci',`modify_time` TIMESTAMP NULL DEFAULT NULL COMMENT '修改時間',`logic_deleted` TINYINT(4) NULL DEFAULT NULL COMMENT '是否刪除:0,未刪除,1,已刪除',`delete_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '刪除用戶' COLLATE 'utf8mb4_general_ci',`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '刪除時間',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `flow_no` (`flow_no`) USING BTREE,INDEX `status` (`status`) USING BTREE
)
COMMENT='優惠券流轉表'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

客戶優惠券表: 通過某種方法優惠券到了客戶手中,也就是所屬客戶了,優惠券是一張一張的體現的,通過狀態來標定客戶是否使用。

CREATE TABLE `t_customer_coupon` (`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',`flow_id` BIGINT(20) NULL DEFAULT NULL COMMENT '流轉ID',`flow_no` VARCHAR(50) NULL DEFAULT NULL COMMENT '流轉編號' COLLATE 'utf8mb4_general_ci',`customer_id` BIGINT(20) NULL DEFAULT NULL COMMENT '客戶ID',`coupon_id` BIGINT(20) NULL DEFAULT NULL COMMENT '優惠券ID',`coupon_franchisee_id` BIGINT(20) NULL DEFAULT NULL COMMENT '加盟商ID',`coupon_grade` TINYINT(4) NULL DEFAULT NULL COMMENT '優惠券級別:1,平臺優惠券、2,加盟商優惠券',`coupon_type` TINYINT(4) NULL DEFAULT NULL COMMENT '優惠券類型(1、抵扣券(現金券),2、折扣券,3、滿減券)',`coupon_attributes` TEXT NULL DEFAULT NULL COMMENT '優惠券屬性(原來優惠券的屬性)' COLLATE 'utf8mb4_general_ci',`cash_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '優惠券減免金額',`status` TINYINT(4) NULL DEFAULT NULL COMMENT '狀態:0,未生效,1,未使用,2:已使用',`create_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '創建人' COLLATE 'utf8mb4_general_ci',`create_time` TIMESTAMP NULL DEFAULT NULL COMMENT '創建時間',`update_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '更新人' COLLATE 'utf8mb4_general_ci',`update_time` TIMESTAMP NULL DEFAULT NULL COMMENT '更新時間',`logic_deleted` TINYINT(4) NULL DEFAULT NULL COMMENT '是否刪除:0,未刪除,1,已刪除',`delete_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '刪除人' COLLATE 'utf8mb4_general_ci',`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '刪除時間',PRIMARY KEY (`id`) USING BTREE,INDEX `customer_id` (`customer_id`) USING BTREE,INDEX `coupon_id` (`coupon_id`) USING BTREE,INDEX `status` (`status`) USING BTREE
)
COMMENT='客戶優惠券'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88447.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88447.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88447.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

讓 3 個線程串行的幾種方式

1、通過join()的方式 子線程調用join()的時候,主線程等待子線程執行完再執行。如果讓多個線程順序執行的話,那么需要他們按順序調用start()。/*** - 第一個迭代(i0):* 啟動線程t1 -> 然后調用t1.join()。* …

在 Vue 項目中關閉 ESLint 規則

在 Vue 2 項目中關閉 ESLint 規則有以下幾種方法,根據您的需求選擇合適的方式: 1. 完全禁用 ESLint 修改 vue.config.js(推薦) module.exports {// 關閉 ESLintlintOnSave: false }或修改 package.json {"scripts": {&…

電腦息屏工具,一鍵黑屏超方便

軟件介紹 今天為大家推薦一款實用的PC端屏幕管理工具——CloseDsp。這款"息屏小能手"能一鍵關閉顯示器,解決各種場景下的屏幕管理需求。 核心功能 CloseDsp最突出的特點是能瞬間關閉顯示器屏幕。只需點擊"關閉顯示器"按鈕,屏幕…

嵌入式調試LOG日志輸出(以STM32為例)

引言在嵌入式系統開發中,調試是貫穿整個生命周期的關鍵環節。與傳統PC端程序不同,嵌入式設備資源受限(如內存、存儲、處理器性能),且運行環境復雜(無顯示器、鍵盤),傳統的斷點調試或…

Zephyr的設備驅動模型

默認配置默認配置 boards/arm/nucleo_f401re/ ├── nucleo_f401re.dts ← 板卡設備樹主入口 ├── nucleo_f401re_defconfig ← 默認 Kconfig 配置 ├── board.cmake ← CMake 構建入口overlay1.新增加驅動需要修改對應板的設備樹文件&#xf…

Mysql字段沒有索引,通過where x = 3 for update是使用什么級別的鎖

沒有索引時,FOR UPDATE 會鎖住整個表 現在,你正在一本一本地翻看所有書,尋找“維修中”的書,并且你對管理員說:“在我清點和修改完之前,別人不能動這些書,也不能往這個范圍里加新書!…

TCP-與-UDP-協議詳解:原理、區別與應用場景全解析

TCP 與 UDP 協議詳解:原理、區別與應用場景全解析 在日常使用網絡的過程中,我們經常聽到 TCP 和 UDP 這兩個詞。你打開網頁、發送消息、觀看視頻,背后都在使用 TCP 或 UDP 進行數據傳輸。那么這兩個協議到底是怎么工作的?它們之間…

GitHub信息收集

目錄 簡介 一、入門搜索技巧 1. 基本關鍵詞搜索 2. 文件類型限定搜索 3. 用戶/組織定向搜索 二、精準定位技巧 1. 組合搜索條件 2. 排除干擾結果 3. 路徑限定搜索 三、防御建議 四、法律與道德提醒 簡介 GitHub作為全球最大的代碼托管平臺,存儲著數十億…

由 DB_FILES 參數導致的 dg 服務器無法同步問題

由 DB_FILES 參數導致的 dg 服務器無法同步問題 用戶反映,dg 服務器數據從昨晚(7月8日)開始停止同步。 連接服務器發現沒有 mrp 進程,并且 OPEN_MODE 參數也不正確。具體情況如下所示: SQL> select process, status…

Go語言泛型-泛型對代碼結構的優化

在Go語言中,Go泛型-泛型對代碼結構的優化部分主要探討了泛型如何幫助我們優化代碼結構、減少重復代碼,并提高代碼的可維護性、可讀性和復用性。以下是詳細內容: 一、引言 Go 1.18 引入了泛型,極大地提高了語言的靈活性。泛型使得我們可以編寫更加通用、可復用且類型安全的…

【1-快速上手】

文章目錄前言簡介什么是 Konva?安裝 Konva概述它是如何工作的?基本形狀樣式事件拖放濾鏡動畫選擇器序列化與反序列化性能前言 結合項目實際業務需求,在 Fabric、Konva 等圖形化框架中,我選擇了性能表現好的 Konva。首先去學習官方…

【LeetCode】209. 長度最小的子數組(前綴和 + 二分)

【LeetCode】209. 長度最小的子數組(前綴和 二分)題目描述前綴和二分優化前綴和總結二分總結題目描述 題目鏈接:【LeetCode】209. 長度最小的子數組(前綴和 二分) 給定一個含有 n 個整數的數組和一個整數 target。…

文件系統----底層架構

當我們談到文件系統的時候,最重要的點在于:文件的內容與屬性是如何存儲在磁盤中的?以及操作系統是如何精準定位到這些文件內容的?在談及文件的內核前,我們先來了解一下儲存文件的硬件-----硬盤一.理解硬件首先我們來看…

小程序開發平臺,自主開發小程序源碼系統,多端適配,帶完整的部署教程

溫馨提示:文末有資源獲取方式全開源與自主開發源碼完全開放:開發者可自由修改前端界面、后端邏輯及數據庫結構,支持深度定制(如調整用戶端交互流程、商家端管理功能等)。技術棧透明:基于主流技術&#xff0…

stp拓撲變化分類

Max Age 20sHellotime 2sForward delay 153、拓撲改變需要多長時間1)根橋故障:需要50秒(Max age2個forwarding delay)2)非直連鏈路:非直連故障在穩定的STP網絡,非根橋會定期收到來自根橋的BPDU報…

一、深度學習——神經網絡

一、神經網絡 1.神經網絡定義:人工神經網絡(Artificial Neural Network,ANN)也簡稱為神經網絡(NN),是一種模仿生物神經網絡結構和功能的計算模型。人腦可以看作是一個生物神經網絡,由…

【牛客算法】 小紅的奇偶抽取

文章目錄 一、題目介紹1.1 題目描述1.2 輸入描述1.3 輸出描述1.4 示例二、解題思路2.1 核心算法設計2.2 性能優化關鍵2.3 算法流程圖三、解法實現3.1 解法一:字符串分離法3.1.1 初級版本分析3.2 解法二:數學逐位構建法(推薦)3.2.1 優化版本分析四、總結與拓展4.1 關鍵優化技…

Maven 繼承:構建高效項目結構的利器

一、引言 Maven 是一個強大的項目管理工具,它通過標準化的項目結構和依賴管理極大地簡化了 Java 項目的開發流程。在 Maven 中,繼承是一種非常有用的功能,它允許我們創建一個父項目,其他子項目可以繼承這個父項目的配置信息&#…

Mysql組合索引的update在多種情況下的間隙鎖的范圍(簡單來說)

簡單來說,當 UPDATE 語句的 WHERE 條件使用了組合索引,并且需要鎖定不存在的“間隙”來防止幻讀時,就會產生間隙鎖。間隙鎖的范圍取決于 WHERE 條件如何利用組合索引,以及數據庫的隔離級別。 我們用圖書館的例子。比如&#xff1a…

什么是Apache Ignite的affinity(親和性)

在 Apache Ignite 中, affinity(親和性) 是一種用于控制數據分布和查詢性能的重要機制。它允許開發者指定數據如何在集群中的節點之間分布,從而優化數據訪問和查詢效率。以下是關于 affinity 的詳細解釋:數據親和性&a…