簡(jiǎn)單的寫作緣由介紹
最近在做一個(gè)電商項(xiàng)目,這里將電商項(xiàng)目的后臺(tái)數(shù)據(jù)架構(gòu)記錄一下
電商系統(tǒng)很復(fù)雜嘀略,涉及的東西很多恤溶,舉個(gè)例子,簡(jiǎn)單的一個(gè)商品屎鳍,涉及的狀態(tài)就有很多,例如:庫(kù)存问裕、商品性質(zhì)(實(shí)物逮壁、虛擬物品、票卷等)粮宛、商品狀態(tài)窥淆、商品規(guī)格、銷售開始及結(jié)束時(shí)間巍杈、系統(tǒng)排序忧饭、收藏、評(píng)論筷畦、是否限購(gòu)词裤、價(jià)格信息(市場(chǎng)價(jià)格刺洒、真實(shí)價(jià)格、實(shí)際售價(jià)吼砂、顯示價(jià)格逆航、規(guī)格價(jià)格、階梯價(jià)格等等)渔肩、是否綁定物流信息因俐、供應(yīng)商等等,這里不一一列舉周偎。
由于電商的復(fù)雜性抹剩,這個(gè)系列會(huì)由最簡(jiǎn)單的場(chǎng)景開始介紹,然后不斷的延伸功能蓉坎,方便理解澳眷,所以可能會(huì)寫好幾篇
1.從最基礎(chǔ)的開始
場(chǎng)景描述:
下面針對(duì)上面的最簡(jiǎn)單的電商流程設(shè)計(jì)一下數(shù)據(jù)表
- 用戶(user)是一條數(shù)據(jù),也有表結(jié)構(gòu)袍嬉,但是這里不做介紹境蔼,我們暫且用一竄數(shù)字代表一個(gè)用戶uid=123456(user id),實(shí)際上根據(jù)這個(gè)uid可以查到一個(gè)用戶的所有信息
- 商品(item)下面列舉一下在這個(gè)場(chǎng)景中商品要用到的屬性
字段 | 類型 | 說明 |
---|---|---|
id | num | 數(shù)據(jù)id |
name | string | 商品名稱 |
sub_name | string | 商品副標(biāo)題 |
title_pics | array | 商品封面圖片數(shù)組 |
item_desc | string | 商品介紹 |
item_price | num | 商品價(jià)格 |
state | num | 商品狀態(tài):-2=刪除伺通,-1=下架箍土,0=編輯狀態(tài),1=已提交罐监,2=已上架吴藻,3=審核中,4=審核不通過弓柱,5=審核通過 |
storage | num | 庫(kù)存 |
sales_count | num | 銷售數(shù)量 |
有上面的這些字段沟堡,大致就可以滿足最簡(jiǎn)單的電商流程場(chǎng)景,更詳細(xì)的關(guān)于商品還有很多字段矢空,例如:view_count(瀏覽量)航罗、like_count(收藏量)、sys_index(系統(tǒng)排序參數(shù))等等
- 訂單(order)列舉訂單字段
字段 | 類型 | 說明 |
---|---|---|
id | num | 數(shù)據(jù)id |
state | num | 商品狀態(tài):-1=刪除屁药,0=在購(gòu)物車中粥血,1=待付款,2=已支付(待發(fā)貨)酿箭,3=已發(fā)貨(待收貨)复亏,4=待評(píng)價(jià),5=已完成缭嫡,6=已取消缔御,7=維權(quán)中(申請(qǐng)退貨) |
item_id | num | 訂單對(duì)應(yīng)的商品id |
name | string | 商品名稱 |
sub_name | string | 商品副標(biāo)題 |
title_pics | array | 商品封面圖片數(shù)組 |
total_count | num | 購(gòu)買商品數(shù) |
item_price | num | 訂單中商品價(jià)格 |
settlement_price | num | 結(jié)算價(jià)格 |
uid | num | 購(gòu)買者id |
下面我們根據(jù)上面的數(shù)據(jù)表創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)
根據(jù)商品結(jié)構(gòu)表item,我們可以生成一條商品數(shù)據(jù)
{
"id": 1299477521563661,
"state": 2,
"name": "可口可樂",
"sub_name": "可口可樂真好喝",
"title_pics": ["我是圖片連接","我是圖片連接"],
"item_desc": "我是商品介紹",
"sales_count": 0,
"item_price": 1,
"storage": 1000
}
- id字段是商品的數(shù)據(jù)id妇蛀,不可以重復(fù)
- state字段標(biāo)示了商品當(dāng)前的狀態(tài)耕突,根據(jù)state我們可以對(duì)商品進(jìn)行管理(主要作用的為了電商的管理后臺(tái)管理商品)笤成,例如:上架操作、刪除操作等等
有了上面的商品信息之后有勾,當(dāng)用戶購(gòu)買商品下單的時(shí)候疹启,可以生成一條order數(shù)據(jù)
{
"id": 1299477521523456,
"state": 0,
"item_id":1299477521563661,
"name": "可口可樂",
"sub_name": "可口可樂真好喝",
"title_pics": ["我是圖片連接","我是圖片連接"],
"total_count": 10,
"item_price": 1,
"settlement_price": 100,
"uid": 123456
}
- id字段是訂單的id,不可以重復(fù)
- state字段標(biāo)示了訂單的狀態(tài)蔼卡,這里具體的介紹一下喊崖,當(dāng)用戶選中商品,到支付頁面的時(shí)候雇逞,這時(shí)候訂單狀態(tài)是1(待付款)荤懂,用戶付款后訂單狀態(tài)變?yōu)?(已付款),以此類推塘砸,根據(jù)不同的操作节仿,將訂單標(biāo)示為不同的狀態(tài),這樣根據(jù)state字段可以分類查找出不同狀態(tài)的訂單
- item_id字段掉蔬,商品的id廊宪,可以根據(jù)此id查詢出商品的所有信息
- uid字段,每個(gè)訂單都對(duì)應(yīng)一個(gè)用戶
- 這里將商品的
name
女轿、sub_name
箭启、title_pics
拷貝,是為了展示訂單信息的時(shí)候方便直接展示蛉迹,這樣就可以不用再查詢item
表傅寡,省去一步查詢操作
注意在用戶購(gòu)買付款后,對(duì)商品的storage
北救、sales_count
字段進(jìn)行update
荐操,實(shí)現(xiàn)相應(yīng)的庫(kù)存增減
以上的操作,大致就是一個(gè)最簡(jiǎn)單的電商流程珍策,對(duì)應(yīng)到實(shí)際的購(gòu)物流程中就是托启,商品 -> 立即購(gòu)買 (注意,這里沒有將商品添加到購(gòu)物車)攘宙,在下一篇中屯耸,會(huì)介紹最簡(jiǎn)單的購(gòu)物車下單流程