精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關于數據庫“狀態”字段設計的思考與實踐

數據庫
最近在做訂單及支付相關的系統,在訂單表的設計階段,團隊成員就“訂單狀態”數據庫字段設計有了一些分歧,網上也有不少關于這方面的思考和探討,結合這些資料和項目的實際情況,擬對一些共性問題進行更深一層的思考,筆耕在此,和大家一起探討。

目錄

1. 問題綜述

2. 業務分析

3. 問題一、訂單表的‘訂單狀態’字段應當包含哪些狀態值?

4. 問題二、訂單表的‘訂單狀態’字段的字典值的表示形式?

5. 問題三、數據庫表的‘狀態’字段使用何種類型

6. 問題結論匯總

7. 參考資料

正文

最近在做訂單及支付相關的系統,在訂單表的設計階段,團隊成員就“訂單狀態”數據庫字段設計有了一些分歧,網上也有不少關于這方面的思考和探討,結合這些資料和項目的實際情況,擬對一些共性問題進行更深一層的思考,筆耕在此,和大家一起探討。

1. 問題綜述

這里的分歧點即有團隊內部的分歧點,也有網絡上常見的一些分歧點,先將存在的分歧點拋出來:

1)、訂單表的‘訂單狀態’字段對應的字典值應當包含哪些狀態值?對于‘已評論’、‘已退貨’、’已退款’這類狀態是放到‘訂單狀態’中?還是獨立一個字段標識?

2)、訂單表的‘訂單狀態’字段對應的字典值如何表示?可選項有:使用數字標識、使用多‘位’存儲方式標識、使用具有明確業務含義的英文字符串標識;

3)、訂單表的‘訂單狀態’字段使用何種類型?可選項有:number(N)、char(N)、varchar2(N);

如果嫌分析過程過于啰嗦,可以直接拉到***看結論。

2. 業務分析

我們先不去看問題,先來看看和‘訂單(Order)’實體相關的業務是怎樣的。下面我們會針對可能改變訂單實體狀態的行為已經狀態變化的可能性進行詳細的分析。

訂單業務實體相關的業務流程如下:下單(create)--> 買家付款(pay)--> 賣家發貨(deliver)-->買家收貨(receive)-->退貨(rereturn);此外,還有退款(refund)和評論(comment),這兩個行為比較特殊,其前向行為可能存在多個。

 

首先,可以改變訂單業務狀態【這里的狀態不是指‘訂單狀態’(OrderState)這個數據庫字段,而是指實際業務狀態,我們簡記為(BizState),以和OrderState區分開】的行為有哪些?按照典型電商的業務流程,主要的行為(action)有:下單、付款、發貨、收貨、退款/退貨、評論;每一種行為的發生,都會導致訂單的業務狀態BizState發生變化,比如‘下單’行為會創建訂單,‘付款’行為會使訂單變為‘已付款’,‘發貨’行為可以使訂單狀態變為‘已發貨’,‘收貨’行為會使訂單狀態變為‘已收貨’,‘評論’行為會使訂單狀態變為‘已評論’。‘退款/退貨’action不是所有訂單都支持的,為減小復雜度,暫不考慮它們。

其次,細分下每種action對BizState帶來的影響,會發現還可以細分為四種子狀態(subState):action未開始(標記為0)、action進行中(標記為1)、action成功(標記為2)、action失敗(標記為3);理論上,將所有action的所有subState進行排列得到4*4*4*4*4=1024(暫未考慮‘退貨’);實際上,很多組合是沒有業務意義的,是不可能存在的,比如‘未開始已付款...’(***20)這一類組合是不可能發生的,應當舍棄。用表格將上述的組合分析如下:

 

通過上表,我們可以發現些的規律:

‘下單’、‘付款’、‘發貨’、‘收貨’前四種action是存在依賴關系的,亦即后一個action依賴于前一個action的完成;所以,他們的SubState組合情況就會非常少;

‘評論comment’這個action的SubState和其他狀態組合會有很多種可能性;除了前面了兩行是‘X’,后面是‘?’或者‘Y’,‘?’是指需求上是否允許在對應的BizState上進行評論,如果允許,則每種BizState需要多出4種可能,這樣組合的可能性就會變得很大。

沒有業務意義的SubState組合被舍棄。表中的標黑單元格,表示這個BizState是毫無意義的,因為‘未下單’的訂單對于我們來講是不存在的,這類組合需要舍棄;同樣的,還有很多其他的組合也是不存在的,被舍棄掉,未展示在上表中,如‘已下單已付款未發貨已收貨’這種。

通常某個action的SubState為‘1進行中’、‘3失敗’時,會被忽略,但也有例外;比如‘付款’action的‘3失敗’狀態,和‘付款’action的‘1進行中’狀態,具體分析見后面內容。

忽略所有action的‘0未開始’SubState狀態。因為這類SubState對于BizState不會帶來變化。

綜合下來,我們得到上表的BizState,注意這里的Comment action未進行細化處理,如果細化處理,會發現BizState的可能性會增大很多很多。

接下來我們就之前提出的這些問題進行逐個討論。

3. 問題一、訂單表的‘訂單狀態’字段應當包含哪些狀態值?

什么樣的‘訂單業務狀態’(BizState)需要記錄到系統層面的‘訂單狀態’(OrderState)字段呢?如果記錄多了,則系統處理的復雜度會增大;記錄少了,那么‘訂單狀態’(OrderState)字段就不能完整的表示出訂單實體狀態變化情況。

核心狀態

通過上面的業務分析可知:大部分存在依賴關系的action(create、pay、deliver、receive),他們產生的合理的SubState組合是非常少的,而且他們之間的依賴是單向依賴,狀態機的處理也很簡單,因此,我們先將這部分BizState納入到OrderState中:

  • 等待買家付款
  • 買家付款成功
  • 賣家已發貨
  • 買家已收貨

目前的訂單狀態流轉:

 

‘action行為’失敗的情況

對于action的SubState是‘3失敗’的處理,需要針對不同的action進行分析。類似‘下單Create’這樣的action,如果失敗,則可以直接將OrderState置為‘訂單創建失敗’,因為Create action是***個action,它的失敗意味著Order實體出生即死,BizState置為終態,對于這個BizState應當納入到OrderState中記錄,不過這個OrderState其實對于用戶并無多大用處,因為用戶并不會關心下單失敗的訂單,他更關心的是重新下單;

對于‘支付’失敗,則要看需求,如果需求要求用戶可以繼續支付,則訂單需要保留,并且狀態仍然為‘等待買家付款’,如果不允許再支付,則理論上可以將BizState置為‘支付失敗’終態,所以,‘支付失敗’的BizState終態也應當記錄到OrderState字段中。

對于‘發貨’失敗、‘收貨’失敗的情況,通常是不會發生的,即使發生也不屬于系統能夠控制的范疇,系統記錄并無意義,更具建設性的做法是通過線下手段盡快解決問題,重新發貨等等,所以對于這些狀態系統的OrderState字段不予記錄。

這樣下來我們的OrderState字典值增加到6個,加粗項為新增:

  • 創建訂單失敗(終態)
  • 等待買家付款
  • 買家付款失敗(終態,依賴需求而定)
  • 買家付款成功
  • 賣家已發貨
  • 買家已收貨

目前的訂單狀態流轉:

 

‘action行為’進行中的情況

對于action的SubState是‘1進行中’的處理,同樣需要具體場景具體分析。‘付款’行為是用戶發起的,但是并不是和訂單系統之間的交互,涉及到支付系統的處理,這個領域也不是訂單系統可控的,但關系到錢,用戶比較關系,所以對于這樣一個中間態,我們需要記錄,以便用戶通過訂單系統查詢訂單狀態,為便于用戶理解,將此狀態在OrderState中記為‘付款確認中’;‘發貨’‘收貨’進行中的情況,不是訂單系統可以控制的領域,我們可以把他們當著行為‘未開始’處理,比如‘發貨進行中’,訂單系統的OrderState值為‘買家已付款’,但給用戶看到的提示信息是‘買家已付款,等待賣家發貨’,實際上這時候賣家可能正在發貨中,但是用戶不會去關心到底有沒有打包好貨物什么的,所以這類‘進行中’狀態可以舍棄。這樣下來訂單系統的OrderState字段又多了一個字典值:‘付款確認中’:

  • 創建訂單失敗(終態)
  • 等待買家付款
  • 付款確認中
  • 買家付款失敗(終態,依賴需求而定)
  • 買家付款成功
  • 賣家已發貨
  • 買家已收貨

目前的訂單狀態流轉:

 

‘action行為’未開始的情況

忽略所有action的‘0未開始’SubState狀態。因為這類SubState對于BizState不會帶來變化。

‘評論comment’的處理

***,再來看看‘評論comment’這個action。如果需求上要求:只有買家收貨后才能發起‘評論’操作,則可以任務‘評論comment’單向依賴于‘receive收貨’行為,那么可以將這個action的subState對應的少量BizState(應當只有‘買家已評論’、‘賣家已評論’狀態)納入OrderState字段統一記錄;但是如果需求是:買家在下單后就可以開始評論,比如如果賣家發貨慢了,買家可以上去吐槽,那么‘評論comment’就不是單向依賴于‘receive收貨’行為了,而是多向依賴于‘pay付款’、‘deliver發貨’、‘receive收貨’,那么這些actions的subState組合可能性就暴增,BizState的字典取值也會暴增,顯然,不應當將這么多的BizState交給OrderState來記錄,而應當由一個獨立的數據庫字段負責記錄‘評論comment’的SubState,我們可以將這個字段取名

為‘CommentState’(評論狀態),它的字典值不多,只有:‘未評論’、‘買家已評論’、‘賣家已評論’;其實,對于前一種需求,也可以不講‘評論comment’對應的SubState產生的BizState納入OrderState,因為用戶對于評論與否其實并不是那么關心的,也就是說‘評論comment’并不是核心業務流程,為了降低核心業務流程的系統處理復雜度,將其從核心業務流程中剝離出來較好。

綜上,我們應當將‘評論comment’對應的BizState獨立到一個字段中記錄。

‘退貨rereturn’的處理

再來看看‘退貨rereturn’行為對應的BizState的處理。‘退貨rereturn’并不是所有訂單都會經歷的,但是一旦涉及,則‘退貨rereturn’在業務流程上必定是單向依賴于單向依賴于‘receive收貨’,所以應當將‘退貨rereturn’產生的BizState(‘退貨中’、‘退貨成功’,‘退款失敗’和‘未退貨’被忽略,見上面解釋)納入OrderState一并記錄;這樣我們的OrderState有多了兩種字典值,這里我們不考慮一個訂單中有多種商品的情況,故把‘退貨成功'當著終態處理,如果是一個訂單多種貨物的情況,需要重新仔細分析。加粗項為新增:

  • 創建訂單失敗(終態)
  • 等待買家付款
  • 付款確認中
  • 買家付款失敗(終態,依賴需求而定)
  • 買家付款成功
  • 賣家已發貨
  • 買家已收貨
  • 退貨中
  • 退貨成功(終態)

目前的訂單狀態流轉:

 

‘退款refund’的處理

***來看下‘退款refund’行為對應的BizState的處理。首先,我們需要知道‘退貨’和‘退款’是兩種不同的業務行為,他們的關系是:通常意義上,‘退貨’必然導致‘退款’,但是‘退款’可以沒有‘退貨’的參與(這里不討論特殊情況,比如對于虛擬貨物來講,付款成功通常以為著收貨成功,這時候就只能是在由‘退貨’導致‘退款’),比如電商允許用戶付款成功后收到貨物前發起‘退款’。也就是說‘退款refund’并不單向依賴于‘退貨rereturn’,和‘評論comment’一樣是多項依賴,所以,我們可以參考‘評論comment’的處理方式,單獨建立一個字段‘RefundState退款狀態’記錄‘退款refund’產生的BizState,這個狀態字段的字典值有:退款中,退款成功。

其他情況考慮

另外,可能還有一些增強型需求,讓客戶體驗更好,比如用戶可以創建訂單之后付款之前,將訂單取消,或者由系統跑批將用戶長時間未支付的訂單關閉,這會產生一種新的action——‘close關閉’,對應的會產生一種新的有意義的BizState——‘訂單關閉/取消’,這個不屬于核心流程中的,且并無糾結之處,不予詳細討論,羅列如下:

  • 創建訂單失敗(終態)
  • 等待買家付款
  • 付款確認中
  • 買家付款失敗(終態,依賴需求而定)
  • 買家付款成功
  • 賣家已發貨
  • 買家已收貨
  • 退貨中
  • 退貨成功(終態)
  • 訂單關閉(終態)

結論

綜上,我們可以得出放入數據庫’訂單狀態‘字段的標準:核心業務流程,向前單向依賴。擴展到其他業務實體是一樣的,這里說的’訂單狀態‘字段實際是指該業務實體對應的數據表的主業務狀態字段。我們把結論擴展一下:

如果某個action屬于業務實體對應的核心業務流程,且該action單向依賴于其前向的action,則需要將這個action產生的BizState放入到業務實體對應的數據庫表的主狀態字段中記錄。

OrderState字段記錄的BizState業務狀態有10種,其中4種是終態,其余狀態為中間態。這些狀態的流轉關系為:

 

4. 問題二、訂單表的‘訂單狀態’字段的字典值的表示形式?

先列出可選項:使用數字標識、使用多‘位’存儲方式標識、使用具有明確業務含義的英文字符串標識;對可選項做逐一解釋:

a、使用數字標識——使用一個數字標識一種狀態,并未要求是sequence的;如‘等待買家付款’表示為‘0’;

b、使用多‘位’存儲方式標識——將某種行為是否發生對應的狀態對應到一個位上,比如‘是否付款’定義在***位,‘是否發貨’定義在第二位,‘是否收貨’定義在第三位,‘是否評論’定義在第四位,則狀態‘賣家已收貨未評論’可以表示為:0111;而‘等待買家付款’則表示為‘0000’;當然這里的‘位’可能是二進制的也可能是N進制,后面我們詳細討論。

c、使用具有明確業務含義的英文字符串標識——該方案和方案a類似,不過字典值變為具有明確業務含義的英文支付串,如‘等待買家付款’表示為‘WAIT_BUYER_PAY’;

方案a是數據庫字段字典的慣用方式,簡單直觀,但是有一個壞處在于:當字典值較多時,數據庫表的使用者記不住字典的含義,需要反復查找資料確認;有人會說將字典值寫到字段的注釋里,這個在實踐中不是很靠譜,通常表建立后,如果字段增加了字典值,通常開發人員都會忽略更改字典值;而且在使用工具(如pl/sql)查詢數據庫時,并不會將所有字典值展示出來;

通過問題一的分析,可知:方案b使用多‘位’存儲方式會增加復雜度,并沒有必要,可以通過將‘是否評論’狀態獨立成一個字段進行表示。

方案c和方案a類似,好處在于通過字典值直接知道業務含義,壞處在于會給編碼和手工查詢時帶來復雜度,通常人們也記不住‘等待買家付款’的英文字典

是‘WAIT_BUYER_PAY’,那么手動寫sql查詢‘等待買家付款’時就犯迷糊了。

折中之后,我們組合方案a和方案c,得到方案d:另外建立一張字典表,存儲:數字形式的字典值、字典英文名稱、字典中文簡稱、字典解釋;訂單實體表的OrderState字段使用數字作為字典值。

對于方案d,看到OrderState的數字形式狀態時,可以先看看字段注釋是否有此字典的定義,如果沒有就取查下字典表,得到字典值和含義;在編碼和手動sql查詢時也會變得比較容易,數字的位數畢竟要少些;建立字典表的其他好處還有:字典的解釋可以寫的很詳細,在報表中要求展示字典中文名時,也能直接從數據庫聯表查詢得到,而不必額外做一次映射。(有參考:數據庫表設計(狀態字段))

那么對于字典數量很少的狀態字段是否有必要額外新建一張字典表呢?這個根據實際情況考慮,通??梢韵炔唤ǎ绻罄m有業務場景需要再行創建也不遲。

而對于非業務實體表的系統日志/跑批記錄表等的狀態,則完全可以使用數字形式的字典,因為通常不會有業務場景使用到這些字典值,而且這些字典值域應當會比較小,所以沒有必要為他們創建單獨的字典表。

綜上得出結論:

1)、字典值域較多、變化較多、報表等業務場景會使用到的業務實體表的業務狀態字段,使用‘方案d:新建字典表’的方案處理;如‘訂單業務實體表’中的‘訂單狀態’字段。

2)、字典值域較少、變化較少、報表等業務場景不會使用到的業務實體表的業務狀態字段,使用‘方案a:使用數字標識字典’的方案處理;如‘支付寶的支付流水表’的‘支付流水狀態’字段。

3)、系統日志/跑批記錄表的狀態字段,使用‘方案a:使用數字標識字典’的方案處理;如‘待收貨記錄表’的‘跑批狀態’字段。

5. 問題三、數據庫表的‘狀態’字段使用何種類型

列出可選項:number(N)、char(N)、varchar2(N),其中N是一個長度值。

這個問題主要需要考慮使用場景、擴展性、性能、存儲。

‘狀態’字段主要使用在查詢場景,且通常是‘=’或者‘in’的查詢,并沒有區間類的查詢,故三者差別不大;

對于性能,參考[原創]在Oracle 10g,Number、Char和Varchar2類型作為主鍵,查詢效率分析 char(N)、varchar2(N)性能優于number(N),故舍棄number(N)。

考慮到擴展性,char(N)、varchar2(N)差不多;

考慮到存儲,varchar2更加占用空間更小,故選擇varchar2(N)。

綜上:選擇varchar2(N)作為數據庫‘狀態’字段的類型。

6. 問題結論匯總

1)、訂單表的‘訂單狀態’字段對應的字典值應當包含哪些狀態值?對于‘已評論’、‘已退貨’這類狀態是放到‘訂單狀態’中?還是獨立一個字段標識?

如果某個action(行為,如支付)屬于業務實體對應的核心業務流程,且該action單向依賴于其前向的action,則需要將這個action產生的業務狀態放入到業務實體對應的數據庫表的主狀態字段中記錄。

問題中的‘已評論’由‘評論’行為產生,而‘評論’這個action并不是訂單業務實體的核心業務流程,且可能存在多個前向依賴action(支付、發貨、收貨等),所以應當獨立到一個字段標識。

問題中的‘已退貨’由‘退貨’行為產生,而‘退貨’這個action是訂單業務實體的核心業務流程,用戶非常關心,且只單向依賴于‘收貨’action,所以應當記錄到訂單業務實體表的‘訂單狀態’字段中。

問題中的‘已退款’由‘退款’行為產生,而‘退款’這個action是訂單業務實體的核心業務流程,用戶非常關心,但是這個action存在多個前向依賴action(支付、發貨、收貨等),所以應當獨立到一個字段標識。

2)、訂單表的‘訂單狀態’字段對應的字典值如何表示?可選項有:使用數字標識、使用多‘位’存儲方式標識、使用具有明確業務含義的英文字符串標識;

i、字典值域較多、變化較多、報表等業務場景會使用到的業務實體表的業務狀態字段,使用‘方案d:新建字典表’的方案處理;如‘訂單業務實體表’中的‘訂單狀態’字段。

j、字典值域較少、變化較少、報表等業務場景不會使用到的業務實體表的業務狀態字段,使用‘方案a:使用數字標識字典’的方案處理;如‘支付寶的支付流水表’的‘支付流水狀態’字段。

k、系統日志/跑批記錄表的狀態字段,使用‘方案a:使用數字標識字典’的方案處理;如‘待收貨記錄表’的‘跑批狀態’字段。

3)、訂單表的‘訂單狀態’字段使用何種類型?可選項有:number(N)、char(N)、varchar2(N);

varchar2(N)占用存儲更少,且具有同等的性能、擴展性,選擇varchar2(N)作為數據庫‘狀態’字段的類型。

7. 參考資料

數據庫表設計(狀態字段)

[原創]在Oracle 10g,Number、Char和Varchar2類型作為主鍵,查詢效率分析 

責任編輯:龐桂玉 來源: 數據庫開發
相關推薦

2013-05-21 10:06:11

數據庫查詢優化

2013-06-24 10:31:38

2017-06-08 11:06:03

數據庫架構分組

2020-05-19 08:52:31

APP滲透測試終端安全

2019-12-26 17:25:22

數據庫設計技術

2017-06-10 11:13:39

數據庫架構數據庫集群

2016-11-11 19:32:56

數據庫運維數據庫運維管理

2025-11-06 07:32:32

2015-12-28 16:35:36

UCloud

2022-09-08 10:08:31

阿里云可觀測云原生

2011-08-23 15:16:54

OracleMySQL

2022-12-30 15:27:13

2023-01-31 07:47:14

Dooring低代碼輔助設計

2021-08-09 11:35:40

設計實踐應用

2019-08-28 07:11:00

Oracle數據庫LOB

2011-07-06 10:49:50

MySQL優化

2011-07-06 14:12:20

MySQLPercona

2011-08-05 11:01:15

MySQL數據庫設計

2023-11-17 07:30:30

線段pgvector實踐

2018-06-29 14:51:41

Java健壯性實踐
點贊
收藏

51CTO技術棧公眾號

欧美日韩一卡二卡三卡| 首页欧美精品中文字幕| 日本高清不卡视频| 成人一区二区在线| 青青操在线播放| 女人高潮被爽到呻吟在线观看| 精品中文字幕一区二区| 亚洲少妇激情视频| 国产日韩欧美精品在线观看| 国产视频aaa| 日本激情一区| 国产又黄又大久久| 一区二区三区久久精品| 女人另类性混交zo| 欧美老女人性开放| 在线成人h网| 精品国产一区a| 国产情侣第一页| 国产在线视频第一页| 超碰国产精品一区二页| 国产精品久久久久永久免费观看| 日韩av片免费在线观看| 亚洲黄色免费在线观看| 日本乱码一区二区三区不卡| 91香蕉视频污在线| 日本高清视频一区| 久久婷婷五月综合| 日韩伦理一区二区| 亚洲天堂免费在线观看视频| 7777精品伊久久久大香线蕉语言 | 国产女人高潮的av毛片| 亚洲91视频| 欧美一级片在线看| 日韩精品一区二区在线视频| 丰满少妇一级片| 国产成人澳门| 亚洲18色成人| 麻豆精品传媒视频| 亚洲男人天堂网址| 四季av一区二区三区免费观看| 欧美日本高清视频在线观看| 欧美少妇在线观看| 囯产精品久久久久久| 国产视频一区在线观看一区免费| 亚洲欧美日韩国产中文专区| 岛国毛片在线播放| 污污的网站在线免费观看| 高清av一区二区| 欧美性资源免费| 日韩毛片无码永久免费看| 欧美aaaaaaaa| 亚洲国产日产av| 欧美日韩精品久久久免费观看| 艳妇乳肉豪妇荡乳av无码福利 | 亚洲另类激情图| 99视频在线视频| 制服丝袜在线播放| 久久伊人中文字幕| 色偷偷av亚洲男人的天堂| 色姑娘综合天天| 人成在线免费网站| 中文字幕一区在线观看视频| 97在线精品视频| 欧美18—19性高清hd4k| 成人亚洲精品| 色综合欧美在线| 91精品一区二区三区四区| 香蕉视频成人在线| 精品中文av资源站在线观看| 91精品国产亚洲| 日韩三级在线观看视频| 久久久一本精品| 亚洲视频一区二区在线观看| 玛丽玛丽电影原版免费观看1977 | 亚洲高清视频一区二区| 亚洲av无码一区二区乱子伦| 日韩精品免费视频人成| 亚洲国产精品久久久久秋霞不卡| 亚洲乱码一区二区三区三上悠亚| 亚洲av无码一区二区乱子伦| 免费在线观看成人| 91大神福利视频在线| √天堂中文官网8在线| 国产麻豆一区二区三区精品视频| 精品国产91乱码一区二区三区| 在线观看国产一级片| 午夜影院一区| 久久久精品免费观看| 99久久精品免费看国产一区二区三区 | 亚洲第一福利网站| 天天做天天爱天天高潮| 欧美日韩视频精品二区| 顶级嫩模精品视频在线看| 成人啪啪免费看| 日韩国产成人在线| 国产视频一区在线观看一区免费| 欧美巨猛xxxx猛交黑人97人| 欧美一级大片免费看| 久久91超碰青草在哪里看| 欧美视频在线看| 国产精品无码人妻一区二区在线| v片在线观看| 亚洲欧美综合在线精品| 婷婷四月色综合| 蝌蚪视频在线播放| 久久嫩草精品久久久久| 美国av一区二区三区| 欧美在线观看在线观看| 97aⅴ精品视频一二三区| 日本精品视频在线| 成年人午夜视频| 在线欧美日韩| 久久久亚洲国产| 国产香蕉在线视频| 影音先锋久久资源网| 欧美精品成人在线| 九九热国产视频| 亚洲美女色禁图| 午夜精品美女自拍福到在线| 日产精品久久久久| 在线亚洲成人| 日韩69视频在线观看| 天干夜夜爽爽日日日日| 欧美gayvideo| www.亚洲男人天堂| 日本福利片在线观看| 午夜精品久久| 久久乐国产精品| 在线观看中文字幕视频| 久久一区精品| 国产欧美日韩免费| 国产美女免费看| 国产成人av一区二区三区在线 | 精品综合久久久久久97| 久久久久亚洲av无码专区体验| 欧美1区3d| 久久久久久网址| 人妻 日韩精品 中文字幕| 老司机精品福利视频| 国产精品毛片a∨一区二区三区|国| 国产精品无码一区| 国内精品久久久久影院薰衣草 | 日本一级理论片在线大全| 一区二区三区欧美视频| 成人免费观看cn| 无人区在线高清完整免费版 一区二| 在线观看日韩一区| 性久久久久久久久久久久久久| a级片免费在线观看| 欧美日韩在线视频观看| 国产高潮免费视频| 在线精品国产亚洲| 国产视频在线一区二区| 精品亚洲乱码一区二区 | 26uuu国产一区二区三区| 日本不卡一区| 性爱视频在线播放| 91国产免费观看| 国产男女无遮挡猛进猛出| 四虎884aa成人精品最新| 国产亚洲精品综合一区91| 欧美一级大片免费看| 亚洲va久久久噜噜噜久久| 日韩有码视频在线| 九九热这里有精品视频| 久久天天综合| 99久久伊人精品影院| 成人激情电影在线看| 亚洲国产美女搞黄色| 五月婷婷六月合| 美女福利一区| 久热99视频在线观看| 久久久久女人精品毛片九一| 国产成人啪免费观看软件| 日本精品一区二区三区高清 久久| 超碰在线caoporen| 欧亚一区二区三区| 国产精品无码电影| 91精品国产乱码久久久久久| 国产成人鲁鲁免费视频a| 欧美一级视频免费观看| 激情综合色丁香一区二区| 欧美精品在线一区| free性欧美16hd| 欧美一区二区网站| 日本黄色小视频在线观看| 国产一区二区三区91| 久久久久久国产免费| 一级黄色免费看| 麻豆高清免费国产一区| 久久久精彩视频| 毛片在线能看| 午夜欧美在线一二页| 日本wwwxx| 中文字幕免费一区二区| 国产免费一区二区三区在线能观看 | 欧美精品日韩一本| 级毛片内射视频| 日韩一区二区久久| 国产乱码精品一区二区三区卡 | 亚洲AV无码国产精品午夜字幕 | 日韩国产在线播放| 国产一级做a爱免费视频| 国产69精品久久777的优势| 一级黄色片播放| 在线中文字幕第一页| 欧亚一区二区三区| 欧美成人短视频| 蜜臀99久久精品久久久久久软件| 日韩.欧美.亚洲| 欧美舌奴丨vk视频| 亚洲图中文字幕| 少妇一级淫片日本| 国产精品麻豆视频| 亚洲精品www.| 欧美一区综合| 2014亚洲精品| xxxx视频在线| 亚洲国产精品va| 日韩一区二区视频在线| 久久这里只有精品6| 青青在线视频免费| av一区二区高清| 欧美成人h版在线观看| 国产女人18毛片水真多| 亚洲一区二区四区蜜桃| 91九色蝌蚪porny| 久久精品道一区二区三区| 日韩啊v在线| 国产乱子精品一区二区在线观看| www.国产精品一二区| 99视频国产精品免费观看a| 一区二区三区丝袜| 人妻在线日韩免费视频| 丝袜脚交一区二区| 国产高清精品软男同| 天堂va在线高清一区| 亚洲欧美精品suv| 91视频久久久| 亚洲欧美日韩国产成人精品影院| 韩国三级在线播放| 日韩视频二区| 亚洲国产精品毛片| 日本精品一区二区三区在线观看视频| 久久久久成人精品| 国产在线一二三| 欧美一级高清大全免费观看| 日韩手机在线观看| 亚洲国产成人一区二区三区| 欧美日韩一区二区区| 欧美日韩1区| 国产美女扒开尿口久久久| 日本乱理伦在线| 亚洲欧洲在线免费| 国产高清精品软件丝瓜软件| 欧美性猛交xxxx偷拍洗澡| 99热这里只有精品4| 99久久久国产精品| 中文字幕天天干| 狠狠色丁香久久综合频道| 日本视频一区二区在线观看| 日韩高清一区| 国产精品普通话| 国产污视频在线播放| 日韩在线视频一区| 日韩精品系列| 日韩欧美亚洲一区二区| 波多野结衣在线观看一区| 一区二区三区在线视频播放| 国产美女免费网站| 成人v精品蜜桃久久一区| 毛片av在线播放| 凹凸成人精品亚洲精品密奴| 国产麻豆一区二区三区在线观看| 成人国产精品一区二区免费麻豆 | 免费不卡亚洲欧美| 精品中文字幕一区二区三区| 国产91免费看片| 美女精品视频| 久久精品国产亚洲精品2020| 中文字幕欧美人妻精品一区蜜臀 | 四虎国产成人精品免费一女五男| 丁香婷婷综合激情五月色| 可以看污的网站| 媚黑女一区二区| 色欲色香天天天综合网www| 午夜国产一区二区| 成人午夜在线视频一区| 日韩大尺度黄色| 91国产中文字幕| 欧美人与性动交α欧美精品图片| 中文字幕免费精品一区高清| 青青草手机在线| 精品国产三级电影在线观看| 国产伦精品一区二区三区视频痴汉| 亚洲卡通动漫在线| 免费黄色在线网址| 国产亚洲精品中文字幕| 人妻在线日韩免费视频| 成人激情综合网站| 中文字幕制服丝袜| 国产成人免费在线视频| 成人免费播放视频| 国产美女视频一区| 91小视频在线播放| 精品写真视频在线观看| 国产视频1区2区3区| 日本中文字幕一区| 日韩无套无码精品| 日韩福利视频导航| 午夜精品在线免费观看| 日本vs亚洲vs韩国一区三区| 黄色片在线免费| 免费成人性网站| 羞羞的视频在线| 国产一区二区三区香蕉 | 久久久久久爱| 147欧美人体大胆444| 视频二区欧美| 国产伦精品一区二区三区四区视频 | 日韩成人免费看| 久久国产精品国产精品| 日本成人在线视频网站| 一级黄色在线播放| 国产精一区二区三区| 亚洲av午夜精品一区二区三区| 国产v综合v亚洲欧| 制服丝袜第一页在线观看| 97se亚洲国产综合在线| 欧美巨胸大乳hitomi| 亚洲色大成网站www久久九九| 加勒比av在线播放| 亚洲1区2区3区4区| 特级西西444www高清大视频| 在线播放中文一区| 亚洲精品久久久久久久久久 | 亚洲成av人影院在线观看网| 国产福利拍拍拍| 黑人精品xxx一区一二区| 国产99久久久久久免费看| 日韩一卡二卡三卡四卡| 少妇高潮久久久| 亚洲天堂av高清| 免费在线观看黄色网| 久久久免费观看| 亚洲最大网站| 91欧美激情另类亚洲| 欧美成人一区在线观看| 先锋影音网一区| 韩国亚洲精品| 欧美性猛交久久久乱大交小说 | 免费看91视频| 久久亚洲欧美国产精品乐播 | 国产精品成人免费电影| 国产精品视频一区视频二区| 久久av免费一区| 99久久国产综合精品成人影院| 妞干网在线观看视频| 久久精品国产色蜜蜜麻豆| 黑丝av在线播放| 亚洲欧美在线观看| 手机在线看片1024| 欧美一区二区视频在线观看2022 | 伊人久久大香| 精品国产乱码久久久久软件 | 成人免费毛片视频| 欧美精品粉嫩高潮一区二区| 天堂在线观看av| 久久人人爽人人爽爽久久 | 懂色av一区二区三区| 国产又粗又猛又爽又黄视频| 日韩精品福利在线| 免费在线观看黄色| 国产做受69高潮| 99精品国产九九国产精品| 免费久久一级欧美特大黄| 欧美影院一区| 亚洲精品无码久久久久久| 欧美色123| 爱情岛论坛亚洲首页入口章节| 福利一区二区在线| 黄色录像免费观看| 欧洲一区二区三区免费视频| 五月婷婷免费视频| 欧美日韩成人在线播放| 台湾天天综合人成在线| 欧美午夜精品久久久久免费视| 最新国产乱人伦偷精品免费网站| 激情久久综合网| 国产精品久久久久久久久久免费看| 国产一区二区99| 亚洲国产精品热久久| 91小视频xxxx网站在线| 国产精品欧美日韩| 欧美激情在线精品一区二区三区| 日韩av在线第一页| av日韩在线网站| 日韩黄色一级大片| 亚洲成人久久久| 毛片在线网址|