自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用面向?qū)ο蟮乃季S方式來設(shè)計(jì)數(shù)據(jù)庫(kù)

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
我們有多種類型訂單:實(shí)物訂單、特享商戶訂單、核銷訂單、生活繳費(fèi)訂單、電影票訂單、機(jī)票訂單、以及以后會(huì)持續(xù)新增的未知類型訂單,它們都存放在不同的訂單類型表中,導(dǎo)致有些業(yè)務(wù)做起來會(huì)比較痛苦。

場(chǎng)景

我們有多種類型訂單:實(shí)物訂單、特享商戶訂單、核銷訂單、生活繳費(fèi)訂單、電影票訂單、機(jī)票訂單、以及以后會(huì)持續(xù)新增的未知類型訂單,它們都存放在不同的訂單類型表中

影響

導(dǎo)致有些業(yè)務(wù)做起來會(huì)比較痛苦

比如:

  • 統(tǒng)計(jì)當(dāng)前用戶未付款訂單總數(shù)
  1. 統(tǒng)計(jì)各類訂單中該用戶未支付的訂單數(shù)
  2. 計(jì)算總數(shù)量
  • 在列表中顯示當(dāng)前用戶在某個(gè)時(shí)間段內(nèi)所有未支付訂單的信息(實(shí)現(xiàn)方式如上)
  1. 統(tǒng)計(jì)各類訂單中該用戶在這個(gè)時(shí)間段內(nèi)所有未支付的訂單信息
  2. 在業(yè)務(wù)代碼里面進(jìn)行按時(shí)間排序(這里還會(huì)有各種訂單里面的相同字段信息可能會(huì)不同命名造成業(yè)務(wù)代碼里面的轉(zhuǎn)換[如:核銷訂單叫order_id,生活繳費(fèi)訂單叫orderId],將要根據(jù)訂單類型來分別判斷..............各種痛苦)

例外還會(huì)有個(gè)未知因素:持續(xù)新增的未知類型訂單

每新增一種內(nèi)型訂單,上面的實(shí)現(xiàn)都將隨之新增業(yè)務(wù)代碼。各種蛋疼。

思路

上次換工作,面試遇到一道面試題,如下:

"請(qǐng)?jiān)O(shè)計(jì)數(shù)據(jù)庫(kù),用來存放 老師、學(xué)生等人員的信息,盡量滿足以后的擴(kuò)展。(提示:請(qǐng)寫出3種方式,并分別寫出優(yōu)缺點(diǎn))"

1.入門實(shí)現(xiàn)

思路:設(shè)計(jì)一張表,用來存放人員信息,定義type字段,用來區(qū)分老師 和 學(xué)生

  • 優(yōu)點(diǎn):簡(jiǎn)單,能應(yīng)對(duì)以后的各種查詢
  • 缺點(diǎn):數(shù)據(jù)冗余字段太多,查詢速度慢

2.常見的實(shí)現(xiàn)

思路:設(shè)計(jì)兩張表:一張存放老師、一張存放學(xué)生(最常見的方式)

  • 優(yōu)點(diǎn):都這樣搞,優(yōu)點(diǎn)自然多多
  • 缺點(diǎn):某些查詢有些難以實(shí)現(xiàn)。(如:查詢最近一個(gè)時(shí)間段的新加入的老師和學(xué)生并按時(shí)間排序)

3.面向?qū)ο蟮姆绞絹韺?shí)現(xiàn)

思路:設(shè)計(jì)3張表:人員表、老師特有屬性表、學(xué)什特有屬性表

  • 優(yōu)點(diǎn):以上兩種方式的優(yōu)點(diǎn)總和
  • 缺點(diǎn):未知

解決方案

轉(zhuǎn)回來看 我們商城的訂單表跟上面的無(wú)比相識(shí),目前是使用第二種方式來實(shí)現(xiàn),導(dǎo)致有些業(yè)務(wù)做起來有些不是很爽

如果換種方式按第三種方式來實(shí)現(xiàn),一切又將美好起來。

第三種方式使用面向?qū)ο蟮姆绞絹韺?shí)現(xiàn):

  1. 先把所有訂單的公有的屬性抽象集合起來(如:訂單編號(hào)、下單時(shí)間、訂單狀態(tài)、訂單類型等)創(chuàng)建一張父訂單表
  2. 創(chuàng)建各種訂單專有屬性表(各類訂單特有屬性)
  3. 關(guān)系:父類訂單表 與 訂單表 一對(duì)一的關(guān)系(每張訂單表里面都能在父訂單表里面有1條與之對(duì)應(yīng))

以上方式將能滿足絕大多數(shù)業(yè)務(wù)情況

如上面的兩種查詢情況:

  1. 統(tǒng)計(jì)各類訂單中該用戶未支付的訂單數(shù)
  2. 在列表中顯示當(dāng)前用戶在某個(gè)時(shí)間段內(nèi)所有未支付訂單的信息

這里實(shí)現(xiàn)起來因?yàn)槎寄茉诟赣唵伪碇蝎@取到,將會(huì)無(wú)比 easy,業(yè)務(wù)代碼里面的排序、字段轉(zhuǎn)換等問題也迎刃而解

優(yōu)點(diǎn)

  • 實(shí)現(xiàn)業(yè)務(wù)需求能力強(qiáng)
  • 可擴(kuò)展性的特點(diǎn),以后新增一種內(nèi)型訂單,只需要在父訂單表中給訂單類型新增個(gè)值,在新增加張訂單特有屬性表
  • 業(yè)務(wù)代碼將改動(dòng)小或者不用改動(dòng)

博文出處:www.webdevs.cn/article/92.html

責(zé)任編輯:Ophira 來源: webdevs
相關(guān)推薦

2010-08-02 16:19:00

ibmdw面向?qū)ο?/a>

2017-11-27 06:01:37

數(shù)據(jù)庫(kù)中間件中間層

2017-11-30 08:56:14

數(shù)據(jù)庫(kù)中間件架構(gòu)師

2011-05-19 11:01:14

ERWin數(shù)據(jù)庫(kù)設(shè)計(jì)

2010-06-12 17:16:46

MySQL數(shù)據(jù)庫(kù)

2021-09-09 09:28:08

面向列數(shù)據(jù)庫(kù)面向行

2013-03-20 11:25:47

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)設(shè)計(jì)

2013-03-20 11:33:31

2013-03-20 13:25:53

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)設(shè)計(jì)

2013-03-20 13:35:12

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)設(shè)計(jì)

2012-04-28 10:07:43

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)設(shè)計(jì)

2021-05-07 05:54:43

數(shù)據(jù)庫(kù)數(shù)據(jù)湖數(shù)據(jù)

2025-04-02 08:05:00

數(shù)據(jù)庫(kù)3NF數(shù)據(jù)冗余

2013-03-20 13:16:15

2022-06-30 18:17:00

數(shù)據(jù)集云數(shù)據(jù)建模計(jì)數(shù)據(jù)倉(cāng)庫(kù)

2010-05-04 16:50:04

Oracle數(shù)據(jù)庫(kù)

2014-06-27 10:39:36

APP設(shè)計(jì)談戀愛

2023-10-16 09:00:00

數(shù)據(jù)庫(kù)分布式系統(tǒng)

2020-12-31 05:29:25

數(shù)據(jù)庫(kù)Powerdesign建模

2023-11-30 08:00:54

面向?qū)ο?/a>面向切面
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)