日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

ABB25年11月
關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
工業(yè)智能邊緣計(jì)算2025年會(huì)
2025工業(yè)安全大會(huì)
CAIAC 2025
OICT公益講堂
當(dāng)前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

案例頻道

淺談Client/Server數(shù)據(jù)的完整性約束
  • 企業(yè):控制網(wǎng)    
  • 點(diǎn)擊數(shù):1826     發(fā)布時(shí)間:2006-09-07 20:46:56
  • 分享到:
主要討論基于Client/Server數(shù)據(jù)完整性約束及其如何實(shí)施企業(yè)業(yè)務(wù)規(guī)則,并以SQLServer和PowerBuilder為例,介紹了數(shù)據(jù)完整性約束的實(shí)現(xiàn)技術(shù)。
       DBMS已從早期的分散的一個(gè)個(gè)計(jì)算模型、網(wǎng)絡(luò)/文件服務(wù)計(jì)算模型(針對(duì)文件)發(fā)展到現(xiàn)在的Client/Server計(jì)算模型(針對(duì)表中的一行)。Client/Server模型是非對(duì)等的(decoupled),客戶發(fā)出服務(wù)請(qǐng)求,服務(wù)器作出響應(yīng),提供服務(wù),即所謂的"請(qǐng)求驅(qū)動(dòng)"。DB的Client/Server系統(tǒng)由DBServer、客戶應(yīng)用程序和網(wǎng)絡(luò)組成。DBServer(即后端)負(fù)責(zé)有效地管理系統(tǒng)的資源,主要負(fù)責(zé)數(shù)據(jù)處理、并發(fā)控制、數(shù)據(jù)安全性、數(shù)據(jù)完整性和數(shù)據(jù)的備份和恢復(fù)等。客戶應(yīng)用程序(即前端)是系統(tǒng)中供用戶與數(shù)據(jù)進(jìn)行交互的部件,主要任務(wù)是提供交互式界面完成數(shù)據(jù)的錄入、分析、檢查和顯示,向DBServer發(fā)出請(qǐng)求(SQL語(yǔ)句)并接收結(jié)果和錯(cuò)誤信息。網(wǎng)絡(luò)和通信軟件是系統(tǒng)中客戶和服務(wù)器之間數(shù)據(jù)傳送的工具。
        由于現(xiàn)在的數(shù)據(jù)庫(kù)都是開(kāi)放、多用戶共享,因此維護(hù)數(shù)據(jù)庫(kù)的正確性至關(guān)重要。數(shù)據(jù)庫(kù)的完整性描述為數(shù)據(jù)庫(kù)內(nèi)容的完整性約束集合,其中完整性約束指數(shù)據(jù)庫(kù)的一個(gè)狀態(tài)是否合理。DBS檢查數(shù)據(jù)的狀態(tài)和狀態(tài)轉(zhuǎn)換,判定它們是否合理,是否應(yīng)予接受。對(duì)一個(gè)數(shù)據(jù)庫(kù)操作,要判定其是否符合完整性約束,全部斷言無(wú)矛盾時(shí)才可以執(zhí)行。完整性約束的形式化定義I=(O,P,A,R),其中O是完整性約束所涉及的數(shù)據(jù)對(duì)象集合,P是對(duì)象所滿足的謂詞,A是觸發(fā)檢查的條件,R是約束不滿足時(shí)的反應(yīng)動(dòng)作。
一、 常見(jiàn)的數(shù)據(jù)完整性約束
根據(jù)分類(lèi)角度不同,可將完整性約束分為如下幾類(lèi):
?域、元組、集合完整性
?立即約束和推遲(到EOT)約束
?狀態(tài)約束和狀態(tài)演變約束。
?標(biāo)準(zhǔn)和定制的數(shù)據(jù)完整性約束
  實(shí)際的系統(tǒng)中,一般將數(shù)據(jù)完整性約束分為標(biāo)準(zhǔn)的數(shù)據(jù)完整性約束和定制的數(shù)據(jù)完整性約束。標(biāo)準(zhǔn)的數(shù)據(jù)完整性約束是DBS已經(jīng)實(shí)現(xiàn)的內(nèi)部規(guī)則,包括域完整性、實(shí)體完整性和引用完整性。
域完整性(Field Integrity)保證一個(gè)數(shù)據(jù)庫(kù)不包含無(wú)意義的或不合理的值,即保證表的某一列的任何值是該列域(即合法的數(shù)據(jù)集合)的成員。方法是限制列的數(shù)據(jù)類(lèi)型、精度、范圍、格式和長(zhǎng)度等。
       實(shí)體完整性(Entity Integrity)保證一個(gè)表中的每一行必須是唯一的(元組的唯一性)。為保證實(shí)體完整性,需指定一個(gè)表中的一列或一組列作為它的主鍵(Primary Key)。一個(gè)表中每行的主鍵必須確實(shí)含有一個(gè)值。一個(gè)表只能含有一個(gè)主鍵,如需要從其它列中除去重復(fù)的值,可以將一個(gè)或一組非主鍵列指定為一個(gè)候選鍵或唯一值鍵。
       引用完整性(Reference Integrity)定義了一個(gè)關(guān)系數(shù)據(jù)庫(kù)中不同的列和不同的表之間的關(guān)系(主鍵與外鍵)。要求一列或一組列中的值必須要與相關(guān)的一列或一組列中的值相匹配。從屬的一列或一組列稱(chēng)之為外鍵(Foreign Key)。被引用的列或一組列稱(chēng)之為父鍵,父鍵必須是一個(gè)主鍵或唯一鍵。外鍵屬于子表或明細(xì)表,父鍵屬于父表或主表。若父鍵和外鍵屬于同一表,則稱(chēng)之為自引用完整性。子表某行的外鍵必須與主表的主鍵相匹配,只要依賴(lài)于某主鍵的外鍵仍存在,主表中包含該主鍵的行就不能刪除。
  由于每個(gè)公司的數(shù)據(jù)庫(kù)都有自己獨(dú)特的業(yè)務(wù)規(guī)則集,所以系統(tǒng)必須有一種方式來(lái)實(shí)現(xiàn)定制的業(yè)務(wù)規(guī)則即定制的數(shù)據(jù)完整性約束。定制的數(shù)據(jù)完整性約束可由如下幾種方法實(shí)施。
一種最原始的方法是將將每一個(gè)完整性約束編入要訪問(wèn)數(shù)據(jù)庫(kù)的每個(gè)應(yīng)用程序中,缺點(diǎn)是在每個(gè)相關(guān)的數(shù)據(jù)庫(kù)應(yīng)用程序中,開(kāi)發(fā)者都要對(duì)相同的完整性規(guī)則進(jìn)行編碼、測(cè)試和排錯(cuò)。若某一規(guī)則變動(dòng),所有相關(guān)的應(yīng)用程序都得改動(dòng)。應(yīng)用程序須向DBServer請(qǐng)求大量的數(shù)據(jù),以執(zhí)行該應(yīng)用程序內(nèi)部的數(shù)據(jù)完整性規(guī)則檢查,這將阻塞網(wǎng)絡(luò)。因而這是一種耗時(shí)、低性能的方法。
用戶定義的數(shù)據(jù)類(lèi)型(User-defined DataType)是由標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型導(dǎo)出的新數(shù)據(jù)類(lèi)型,它比標(biāo)準(zhǔn)的數(shù)據(jù)類(lèi)型更準(zhǔn)確地限定了數(shù)據(jù)輸入的范圍。
約束(Check)用于限制列的值域,在數(shù)據(jù)類(lèi)型限制的基礎(chǔ)上對(duì)輸入的數(shù)據(jù)進(jìn)一步進(jìn)行限制。通過(guò)邏輯表達(dá)式來(lái)定義列的有效值。
        缺省(Default) 定義了一個(gè)數(shù)值,當(dāng)用戶向數(shù)據(jù)表插入數(shù)據(jù)時(shí),若某個(gè)域未給定值,系統(tǒng)自動(dòng)將定義在該域上的缺省作為輸入值,保證數(shù)據(jù)庫(kù)數(shù)據(jù)的合理性。
規(guī)則(Rule) 是一個(gè)用來(lái)綁定域或用戶定義數(shù)據(jù)類(lèi)型的數(shù)據(jù)庫(kù)對(duì)象,規(guī)則說(shuō)明了哪些數(shù)據(jù)可以輸入到域中。任何時(shí)刻,用戶輸入或修改數(shù)據(jù)(INSERT 或 UPDATE), DBMS都將檢查該數(shù)據(jù)是否違反綁定在域上的規(guī)則。
        存儲(chǔ)過(guò)程(Stored Procedure)是由編譯過(guò)的SQL語(yǔ)句、控制流語(yǔ)句、變量說(shuō)明和賦值運(yùn)算等組成的集合,由開(kāi)發(fā)者創(chuàng)建并存儲(chǔ)在數(shù)據(jù)字典(大部分DBMS叫系統(tǒng)表)中。我們可以通過(guò)存儲(chǔ)過(guò)程中的語(yǔ)句來(lái)定義企業(yè)業(yè)務(wù)規(guī)則,特別對(duì)于復(fù)雜的表與表之間的關(guān)系,用存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)將變得相當(dāng)容易。
        觸發(fā)器(Trigger)也是一個(gè)存儲(chǔ)過(guò)程,該過(guò)程在插入、修改和刪除等操作事前或事后由DBS自動(dòng)激發(fā)(執(zhí)行)。經(jīng)常用于實(shí)現(xiàn)邏輯上相關(guān)的數(shù)據(jù)表之間的數(shù)據(jù)完整性和一致性。觸發(fā)器非常適合于實(shí)施企業(yè)規(guī)則,如果某個(gè)輸入違反了其中的某個(gè)企業(yè)規(guī)則,觸發(fā)器可以顯示相應(yīng)錯(cuò)誤并中止正在執(zhí)行的數(shù)據(jù)庫(kù)動(dòng)作。
二、Client/Server模型下實(shí)施企業(yè)規(guī)則的準(zhǔn)則
  在Client/Server系統(tǒng)中,前端和后端都提供數(shù)據(jù)完整性約束。在前端可進(jìn)行域完整性約束,并能定制業(yè)務(wù)規(guī)則。在后端幾乎可以實(shí)現(xiàn)上述所列的所有的完整性約束。E.F.Codd在衡量關(guān)系數(shù)據(jù)庫(kù)的十二條準(zhǔn)則之第十條指出關(guān)系完整性約束條件必須用數(shù)據(jù)子語(yǔ)言定義并存儲(chǔ)在數(shù)據(jù)字典中,而不是在應(yīng)用程序中。這樣,當(dāng)完整性約束改變時(shí),只要修改數(shù)據(jù)字典即可,完整性的改變一般不會(huì)在邏輯上影響應(yīng)用程序的活動(dòng)。
        前端應(yīng)用程序也可以進(jìn)行某些完整性檢查并實(shí)施企業(yè)規(guī)則,但是這些做法不能用于取代在數(shù)據(jù)庫(kù)里的完整性約束定義。如果數(shù)據(jù)庫(kù)設(shè)計(jì)者完全正確地說(shuō)明了所有的約束和企業(yè)規(guī)則,則任何違反約束和規(guī)則的數(shù)據(jù)操作都會(huì)引起數(shù)據(jù)庫(kù)錯(cuò)誤。前端應(yīng)用程序的任務(wù)是盡量減少產(chǎn)生數(shù)據(jù)庫(kù)錯(cuò)誤的可能性,只有從這個(gè)意義上說(shuō),前端應(yīng)用程序才應(yīng)當(dāng)包含完整性檢查和實(shí)施事務(wù)規(guī)則。當(dāng)數(shù)據(jù)庫(kù)沒(méi)有完整性約束時(shí),前端應(yīng)用程序必須實(shí)施企業(yè)規(guī)則。
由此我們得出在實(shí)施企業(yè)規(guī)則時(shí)須遵循如下準(zhǔn)則:
?集中在數(shù)據(jù)庫(kù)中實(shí)施企業(yè)規(guī)則
?減少對(duì)數(shù)據(jù)庫(kù)請(qǐng)求的次數(shù),盡量減少返回結(jié)果
我們?cè)趯?shí)施企業(yè)規(guī)則時(shí),應(yīng)將所有的企業(yè)規(guī)則定義在數(shù)據(jù)字典中,應(yīng)用程序在向數(shù)據(jù)庫(kù)提交SQL語(yǔ)句之前盡量減少由用戶引起數(shù)據(jù)庫(kù)錯(cuò)誤的可能性,使應(yīng)用程序運(yùn)行順暢,對(duì)用戶友好,開(kāi)銷(xiāo)少。
三、PowerBuilder/SQLServer數(shù)據(jù)完整性約束的實(shí)現(xiàn)技術(shù)
        PowerBuilder是當(dāng)今非常流行的前端開(kāi)發(fā)工具,它提供了豐富的構(gòu)件,能很方便地開(kāi)發(fā)出界面友好、功能強(qiáng)大的應(yīng)用程序。下面以功能強(qiáng)大的數(shù)據(jù)窗口為例,說(shuō)明前端開(kāi)發(fā)工具如何實(shí)現(xiàn)數(shù)據(jù)完整性約束,PowerBuilder的其它構(gòu)件也提供類(lèi)似實(shí)現(xiàn)完整性約束的方法。
◆利用列的編輯風(fēng)格(Edit Style)限制列的長(zhǎng)度、格式、值域等。PowerBuilder提供無(wú)線按鈕(Radio Button)、檢查框(Check Box)、下拉式數(shù)據(jù)窗口(DropDown DataWindow)、下拉式列表框(DropDown List)、編輯屏蔽(Edit Mask)和編輯(Edit)等編輯風(fēng)格來(lái)檢查列的數(shù)據(jù)類(lèi)型。
◆利用列的有效性驗(yàn)證規(guī)則(Validation Rule)對(duì)輸入數(shù)據(jù)進(jìn)行限制。在Validation Rule對(duì)話框內(nèi),可輸入規(guī)則定義(Rule Definition)和有效性規(guī)則出錯(cuò)信息(Validation Error Message)。
◆可在ItemChanged事件的Script程序里對(duì)輸入數(shù)據(jù)進(jìn)行進(jìn)一步的有效性驗(yàn)證,若輸入數(shù)據(jù)不能通過(guò)在ItemChanged事件里所設(shè)置的檢查,則返回動(dòng)作碼1,拒絕輸入數(shù)據(jù)。
◆當(dāng)應(yīng)用程序調(diào)用函數(shù)Update()更新數(shù)據(jù)庫(kù)之前,觸發(fā)UpdateStart事件。該事件是用于進(jìn)行數(shù)據(jù)有效性驗(yàn)證的最后一次機(jī)會(huì)。若輸入數(shù)據(jù)的有效性驗(yàn)證失敗,則返回動(dòng)作碼1,拒絕數(shù)據(jù)更新。
◆針對(duì)那些數(shù)據(jù)庫(kù)要求必須具備值的列(即那些具有NOT NULL約束的列),可將對(duì)應(yīng)的數(shù)據(jù)窗口的列置為必備域(Required Field)。但是必備域的約束對(duì)用戶來(lái)說(shuō)并不友好,用戶必須輸入一個(gè)值,否則無(wú)法離開(kāi)該列。一種替代的辦法是在UpdateStart事件里檢查列(在數(shù)據(jù)庫(kù)中為NOT NULL列)的值是否為NULL。
◆利用自定義有效性驗(yàn)證函數(shù)進(jìn)行常規(guī)的數(shù)據(jù)檢查,有助于應(yīng)用程序的標(biāo)準(zhǔn)化和簡(jiǎn)化。這些函數(shù)可以用在列的有效性驗(yàn)證規(guī)則,也可以用在Itemchanged事件的Script程序中。一般自定義有效性驗(yàn)證函數(shù)被設(shè)計(jì)成全局函數(shù)、返回布爾型結(jié)果。

 

圖一、PowerBuilder數(shù)據(jù)有效性驗(yàn)證的過(guò)程

        值得注意的是有效性驗(yàn)證規(guī)則對(duì)數(shù)據(jù)窗口類(lèi)的所有實(shí)例都通用,而在Itemchanged事件的Script程序里進(jìn)行有效性驗(yàn)證與具體的數(shù)據(jù)窗口密切相關(guān)。有些有效性驗(yàn)證需進(jìn)行數(shù)據(jù)庫(kù)查詢(xún),若需要很高的系統(tǒng)代價(jià),盡量避免使用。
SQLServer是一個(gè)多用戶的RDBMS,它為復(fù)雜環(huán)境下有效地實(shí)現(xiàn)企業(yè)管理提供了一個(gè)強(qiáng)有力的Client/Server平臺(tái),是一種較理想的后端數(shù)據(jù)庫(kù)服務(wù)器之一。微軟和SYBASE公司都支持SQLServer產(chǎn)品。下面只以一個(gè)例子來(lái)說(shuō)明在SQLServer中如何實(shí)現(xiàn)數(shù)據(jù)的域、實(shí)體、引用完整性約束。有關(guān)于如何用存儲(chǔ)過(guò)程、觸發(fā)器、規(guī)則和用戶定義數(shù)據(jù)類(lèi)型等實(shí)現(xiàn)數(shù)據(jù)完整性約束可參見(jiàn)有關(guān)資料。
 
CREATE TABLE t_user
( stationid SMALLINT NOT NULL,
userid INT NOT NULL ,
mateid SMALLINT NOT NULL,
name CHAR(10),
sex CHAR(1),
birthdate date(8),
PRIMARY KEY(stationid,userid),
UNIQUE(userid,mateid),
FOREIGN KEY(t_unitid) REFERENCES t_unit,
CHECK(sex in('F','M'))
)
CREATE TABLE t_unit
( id SMALLINT NOT NULL,
unitname CHAR(10),
unitaddress CHAR(30),
Unitphone CHAR(12),
PRIMARY KEY(id)
)
       以上定義了一個(gè)管理系統(tǒng)DB的用戶檔案表t_user和單位表t_unit,我們可以看出如何定義域完整性、主鍵、外鍵、唯一鍵、NOT NULL和CHECK約束。
四、結(jié)束語(yǔ)
本文討論了分布計(jì)算環(huán)境下的數(shù)據(jù)完整性約束的概念及其實(shí)現(xiàn)技術(shù)。另外,基于Browser/Server計(jì)算模式下的應(yīng)用系統(tǒng)同樣需要考慮數(shù)據(jù)完整性約束的問(wèn)題,且其與基于Client/Server的數(shù)據(jù)完整性約束相類(lèi)似。
參考文獻(xiàn):
[1] 李昭原主編 數(shù)據(jù)庫(kù)技術(shù)新發(fā)展 清華大學(xué)出版社,1997
[2] 周龍鑲編著 數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)技術(shù) 中國(guó)地質(zhì)大學(xué)出版社,1990
 

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 美国一区二区三区| 成人影视在线观看| 午夜在线亚洲| 欧美a级大片| 夜夜操天天爽| 天天做日日爱| 高清一级片| 日韩在线观看免费| 国产91视频网| 国产高清视频免费| 国产亚洲男人的天堂在线观看| 午夜在线影院| 久久99这里只有精品国产| 日本在线不卡免费视频一区| 国产高清视频免费| 国产成人欧美一区二区三区的| 国产原创中文字幕| 国产伦精品一区三区视频| 日韩一级黄色| 久久久成人网| 久久99欧美| 四虎影视库国产精品一区| 成人免费观看视频| 成人高清视频免费观看| 国产一区二区高清视频| 久久精品免视看国产成人2021| 亚洲 激情| 免费国产在线观看| 二级特黄绝大片免费视频大片| 欧美国产日韩久久久| 国产一区二区精品| 亚洲 国产精品 日韩| 一级毛片视频免费| 二级特黄绝大片免费视频大片| 国产极品精频在线观看| 九九精品久久| 美女免费毛片| 韩国三级香港三级日本三级la| 国产91精品一区二区| 美女免费毛片| 欧美爱色| 毛片成人永久免费视频| 欧美激情一区二区三区视频高清| 国产网站免费观看| 日日日夜夜操| 黄视频网站免费观看| 久久久久久久久综合影视网| 青青久在线视频| 欧美一级视频高清片| 国产不卡在线播放| 超级乱淫黄漫画免费| 国产一级生活片| 国产视频久久久| 国产原创中文字幕| 国产麻豆精品hdvideoss| 欧美1区| 国产极品白嫩美女在线观看看| 亚飞与亚基在线观看| 日本免费乱人伦在线观看| 欧美一区二区三区性| 国产伦精品一区二区三区在线观看| 99久久精品国产片| 精品国产一区二区三区久| 你懂的国产精品| 精品在线观看国产| 99久久精品费精品国产一区二区| 成人av在线播放| 国产网站免费| 国产麻豆精品高清在线播放| 欧美1区| 国产麻豆精品| 国产91视频网| 欧美日本免费| 久久精品免视看国产成人2021| 色综合久久天天综合观看| 国产不卡高清在线观看视频| 成人影院久久久久久影院| 亚洲 激情| 精品久久久久久中文字幕一区 | 青青青草影院 | 欧美激情影院| 国产一区二区精品久| 欧美激情一区二区三区视频| 精品毛片视频| 国产视频一区二区在线播放| 国产伦精品一区二区三区无广告| 美女免费黄网站| 免费一级生活片| 免费国产在线视频| 国产一区二区福利久久| 四虎影视久久| 亚洲天堂一区二区三区四区| 欧美电影免费看大全| 久久国产影视免费精品| 久草免费在线视频| 国产网站麻豆精品视频| 国产精品自拍在线观看| 成人影视在线播放| 国产视频久久久| 九九免费高清在线观看视频| 日韩男人天堂| 一本高清在线| 高清一级片| 精品久久久久久影院免费| 九九久久99综合一区二区| 成人免费网站视频ww| 毛片高清| 成人免费一级纶理片| 成人高清免费| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产成+人+综合+亚洲不卡| 国产麻豆精品高清在线播放| 色综合久久天天综合观看| 99久久网站| 国产不卡在线看| 亚洲第一视频在线播放| 91麻豆精品国产综合久久久| 日韩一级黄色片| 日韩免费在线观看视频| 亚飞与亚基在线观看| 精品视频一区二区| 日本在线不卡视频| 久久99中文字幕| 国产成人精品在线| 日韩免费在线观看视频| 国产精品1024永久免费视频| 成人影院久久久久久影院| 免费的黄视频| 四虎论坛| 91麻豆国产| 日本在线不卡视频| 国产福利免费观看| 精品视频一区二区三区| 九九精品久久| 亚洲天堂在线播放| 久久99中文字幕| 天天做日日爱夜夜爽| 午夜精品国产自在现线拍| 99热热久久| 天天做人人爱夜夜爽2020毛片| 精品国产香蕉伊思人在线又爽又黄| 国产极品精频在线观看| 一级女性全黄久久生活片| 久久久成人网| 国产成人女人在线视频观看 | 欧美激情一区二区三区视频 | 韩国毛片 免费| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产不卡在线播放| 欧美a级片视频| 国产亚洲男人的天堂在线观看| 色综合久久天天综线观看| 日本在线不卡视频| 韩国三级一区| 九九九网站| 夜夜操天天爽| 日日夜人人澡人人澡人人看免| 欧美激情一区二区三区在线| 精品久久久久久免费影院| 国产不卡在线看| 亚洲第一色在线| 国产视频一区在线| 日韩在线观看视频免费| 欧美爱爱网| 精品国产亚一区二区三区| 欧美日本韩国| 精品国产三级a∨在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产不卡高清在线观看视频| 日韩av东京社区男人的天堂| 天天做人人爱夜夜爽2020毛片| 精品美女| 国产视频在线免费观看| 国产视频久久久久| 黄色短视频网站| 毛片高清| 尤物视频网站在线| 日韩中文字幕在线播放| 欧美激情影院| 九九久久99综合一区二区| 久草免费在线观看| 精品国产三级a| 国产91视频网| 欧美激情一区二区三区在线| 久久福利影视| 国产国语对白一级毛片| 九九免费高清在线观看视频| 四虎影视库国产精品一区| 九九免费高清在线观看视频| 精品国产一区二区三区久| 99热热久久| 久久精品欧美一区二区| 亚洲www美色| 青草国产在线| 成人免费观看的视频黄页| 九九久久99| 亚飞与亚基在线观看| 可以在线看黄的网站| 国产亚洲免费观看|