2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

數(shù)據(jù)存儲(chǔ)、分布與流轉(zhuǎn)(下)

 long16 2016-08-03


他,40余載銀行IT路,風(fēng)雨兼程,踏歌而行;

他,是中國(guó)銀行業(yè)IT發(fā)展史的親歷者和見(jiàn)證人;

他,是“宇宙行”開(kāi)發(fā)體系的奠基人和建設(shè)者;

他,友朋遍四方,桃李滿天下;

他,就是中國(guó)工商銀行開(kāi)發(fā)中心前總經(jīng)理,梁禮方。

蒙梁老準(zhǔn)允,優(yōu)智匯獨(dú)家開(kāi)辟《金語(yǔ)梁言》專欄,我們將以各種形式發(fā)表梁老對(duì)中國(guó)金融IT業(yè)的思考與見(jiàn)解,并接受廣大“梁(涼)粉”的提問(wèn),梁老將抽取其中具有代表性的問(wèn)題,在專欄中答疑解惑。我們期待,《金語(yǔ)梁言》對(duì)于轉(zhuǎn)型中的中國(guó)金融IT業(yè)具有啟示和借鑒作用。


上期回顧   

《數(shù)據(jù)的存儲(chǔ)、分布與流轉(zhuǎn)(上)》中,我們介紹了包括聯(lián)機(jī)交易數(shù)據(jù)庫(kù)、批量數(shù)據(jù)庫(kù)、ODS、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)集市、聯(lián)機(jī)日志在內(nèi)的幾類信息系統(tǒng)數(shù)據(jù)庫(kù),并分析了上述各類數(shù)據(jù)庫(kù)的定位。接下來(lái)我們將會(huì)為大家?guī)?lái)數(shù)據(jù)架構(gòu)的規(guī)劃,詳細(xì)介紹數(shù)據(jù)組織、數(shù)據(jù)分布與封裝、數(shù)據(jù)流轉(zhuǎn)與冗余等幾方面的內(nèi)容。


(接上期)

二、數(shù)據(jù)架構(gòu)的規(guī)劃

(一)現(xiàn)狀

現(xiàn)實(shí)中,對(duì)信息系統(tǒng)的應(yīng)用架構(gòu)、數(shù)據(jù)架構(gòu)、流程架構(gòu),通常數(shù)據(jù)架構(gòu)和流程架構(gòu)都沒(méi)能得到系統(tǒng)設(shè)計(jì)人員的足夠重視。實(shí)際上,沒(méi)有一個(gè)好的數(shù)據(jù)架構(gòu),根本不可能有一個(gè)好的應(yīng)用架構(gòu)。數(shù)據(jù)的松耦合是應(yīng)用松耦合的基礎(chǔ)和前提??梢哉f(shuō),數(shù)據(jù)架構(gòu)與應(yīng)用架構(gòu)相互關(guān)系密不可分。

在許多沒(méi)有嚴(yán)格數(shù)據(jù)架構(gòu)規(guī)劃的信息系統(tǒng)里,數(shù)據(jù)庫(kù)與程序的關(guān)系是一種多對(duì)多的關(guān)系。見(jiàn)下圖:


圖:程序與數(shù)據(jù)庫(kù)多對(duì)多的關(guān)系

如上圖。假設(shè)信息系統(tǒng)有5組程序,5組數(shù)據(jù)庫(kù)。這些程序與數(shù)據(jù)庫(kù)的關(guān)連關(guān)系如圖所示。例如,程序1會(huì)訪問(wèn)數(shù)據(jù)庫(kù)A、B、C、D,程序2會(huì)訪問(wèn)數(shù)據(jù)庫(kù)A、B、D、E,……。在這種沒(méi)有嚴(yán)格數(shù)據(jù)架構(gòu)的系統(tǒng)里,不管系統(tǒng)的應(yīng)用架構(gòu)如何設(shè)置,都不可能達(dá)到系統(tǒng)內(nèi)部架構(gòu)真正松耦合的目的,其原因是明顯的:

首先,我們考慮程序的修改引起的變化。如果程序1由于某種原因需要進(jìn)行修改。例如增加、修改或提升某些功能。該修改本來(lái)也許只與數(shù)據(jù)庫(kù)A有直接關(guān)系,數(shù)據(jù)庫(kù)A要進(jìn)行同步修改。但由于程序1與數(shù)據(jù)庫(kù)B、C、D也相關(guān),所以數(shù)據(jù)庫(kù)B、C、D也極可能被程序1的修改所影響。我們不得不認(rèn)真審查該修改是否會(huì)涉及數(shù)據(jù)庫(kù)B、C、D。就算認(rèn)為該修改與數(shù)據(jù)庫(kù)B、C、D基本無(wú)關(guān),起碼也要在修改測(cè)試中驗(yàn)證這一點(diǎn)。同樣,如果程序2要進(jìn)行修改,數(shù)據(jù)庫(kù)A、B、D、E也極可能要修改。

反過(guò)來(lái)考慮數(shù)據(jù)庫(kù)的修改引起的變化。如果數(shù)據(jù)庫(kù)A由于某種原因需要進(jìn)行修改,該修改本來(lái)也許只與程序1有直接關(guān)系,程序1要進(jìn)行同步修改。但由于程序2、3、4也要訪問(wèn)數(shù)據(jù)庫(kù)A,無(wú)論數(shù)據(jù)庫(kù)A修改了什么東西,程序2、3、4也肯定要修改。起碼數(shù)據(jù)定義要修改。同樣,如果數(shù)據(jù)庫(kù)B要進(jìn)行修改,程序1、2、3、5也要同步修改。

這種牽一發(fā)而動(dòng)全身、殃及無(wú)辜的耦合關(guān)系,是系統(tǒng)發(fā)展和維護(hù)的噩夢(mèng)。實(shí)際上也是系統(tǒng)維護(hù)成本和風(fēng)險(xiǎn)的最大部分。

以上舉例僅僅是幾組程序和幾組數(shù)據(jù)庫(kù)作為例子。而實(shí)際上,程序和數(shù)據(jù)庫(kù)的數(shù)量要比上述例子多得多。如上面舉例的某大銀行,程序與數(shù)據(jù)庫(kù)的數(shù)量都是上萬(wàn)的數(shù)量級(jí)。如果還是維持這種程序與數(shù)據(jù)庫(kù)多對(duì)多的關(guān)系,那么其關(guān)系的數(shù)量就是上百萬(wàn)甚至更多。在系統(tǒng)維護(hù)中,要管理和維護(hù)好這種數(shù)量級(jí)的關(guān)系,無(wú)論投入多少成本,可以說(shuō)基本上是不可能的。正因?yàn)檫@樣,系統(tǒng)的修改、升級(jí)往往千慮一失。由于考慮不周(實(shí)際上是不可能周到),結(jié)果是千里之堤毀于蟻穴,一絲疏忽,造成重大故障,給服務(wù)帶來(lái)重大損失。

從上面的分析還可以得出一個(gè)結(jié)論:數(shù)據(jù)架構(gòu)的重要性甚至比應(yīng)用架構(gòu)高。程序的修改,不一定帶來(lái)相關(guān)數(shù)據(jù)庫(kù)的修改;但數(shù)據(jù)庫(kù)的修改,肯定要帶來(lái)所有相關(guān)程序的修改。

以信息系統(tǒng)的聯(lián)機(jī)事務(wù)處理系統(tǒng)為例,數(shù)據(jù)架構(gòu)規(guī)劃包含數(shù)據(jù)組織、數(shù)據(jù)分布與封裝、數(shù)據(jù)流轉(zhuǎn)與冗余等幾方面的內(nèi)容。

(二)數(shù)據(jù)組織

首先,我們要給數(shù)據(jù)分類,把相互關(guān)系密切的數(shù)據(jù)組織成一個(gè)個(gè)數(shù)據(jù)庫(kù)表。那么,什么樣的數(shù)據(jù)可以放在一個(gè)表里呢,可以參考如下幾點(diǎn):

1、 根據(jù)業(yè)務(wù)分類

銀行業(yè)務(wù)的分類,有多個(gè)維度。如按客戶群分:有法人客戶、個(gè)人客戶等;按產(chǎn)品線分:有資產(chǎn)業(yè)務(wù)、負(fù)債業(yè)務(wù)、代理業(yè)務(wù)等。

那么,我們的數(shù)據(jù)也應(yīng)該對(duì)應(yīng)這幾方面的業(yè)務(wù)組織相應(yīng)的數(shù)據(jù)庫(kù)表。

2、 根據(jù)數(shù)據(jù)結(jié)構(gòu)分類

在一個(gè)業(yè)務(wù)分類里,還會(huì)存在許多業(yè)務(wù)數(shù)據(jù)。同一類業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)通常是相同的,可以組成一個(gè)數(shù)據(jù)庫(kù)表。如根據(jù)不同的客戶類,組織客戶信息數(shù)據(jù)庫(kù)表;根據(jù)不同的銀行賬戶類,組織不同的賬戶數(shù)據(jù)庫(kù)表。

3、 根據(jù)相互關(guān)系

有一些數(shù)據(jù),其數(shù)據(jù)結(jié)構(gòu)一樣,但相互之間基本沒(méi)有什么關(guān)系的,應(yīng)該分別組織數(shù)據(jù)庫(kù)。例如對(duì)應(yīng)個(gè)人卡和公司卡業(yè)務(wù),其中卡管理和卡消費(fèi)的數(shù)據(jù)庫(kù)結(jié)構(gòu)可能基本一樣。但是,如果業(yè)務(wù)上兩者基本沒(méi)有交集,那么,我們寧愿配置兩個(gè)數(shù)據(jù)結(jié)構(gòu)一模一樣的數(shù)據(jù)庫(kù)表而不把它們合成一個(gè)。

(二)數(shù)據(jù)分布與封裝

對(duì)于面向應(yīng)用的數(shù)據(jù)庫(kù),數(shù)據(jù)分布的概念是,根據(jù)應(yīng)用架構(gòu)的分類分層,對(duì)數(shù)據(jù)庫(kù)也進(jìn)行分類分層。數(shù)據(jù)庫(kù)分類、分層是數(shù)據(jù)架構(gòu)最重要的規(guī)劃。也是與應(yīng)用架構(gòu)關(guān)系最密切的系統(tǒng)規(guī)劃。

關(guān)于應(yīng)用架構(gòu)和應(yīng)用分層,此前已有論述,讓我們?cè)诖嘶仡櫼幌聭?yīng)用分層架構(gòu)。

信息系統(tǒng)的應(yīng)用架構(gòu),最基礎(chǔ)的元素是程序。應(yīng)用則是一組關(guān)系密切的程序的集合、應(yīng)用組則是一組關(guān)系密切的應(yīng)用的集合、應(yīng)用群則是一組在信息系統(tǒng)中邏輯定位相同的應(yīng)用組的集合??梢?jiàn),不管是應(yīng)用、應(yīng)用組、應(yīng)用群,都是一組程序的集合,只是集合的規(guī)模大小不一樣而已。見(jiàn)下圖:


圖:應(yīng)用分層架構(gòu)

假設(shè)我們?nèi)缟蠄D,把信息系統(tǒng)的應(yīng)用架構(gòu)分為四層,那么我們可以把我們的所有數(shù)據(jù)庫(kù)分為四層。即程序?qū)?、?yīng)用層、應(yīng)用組層、應(yīng)用群層。

數(shù)據(jù)庫(kù)分層分類的原則非常簡(jiǎn)單,該數(shù)據(jù)庫(kù)應(yīng)該由哪一層的哪一個(gè)程序的集合訪問(wèn),就把該數(shù)據(jù)庫(kù)配置在哪一層的哪一個(gè)程序集合中。

數(shù)據(jù)庫(kù)封裝的概念是,被封裝的數(shù)據(jù),只能由封裝自己的那一層的那一個(gè)程序集合的所有程序訪問(wèn)。其他程序決不能跨界訪問(wèn)。

數(shù)據(jù)架構(gòu)通過(guò)這樣的分層分組規(guī)劃,很明顯,其架構(gòu)的模型與應(yīng)用架構(gòu)基本完全一樣。是一種自頂而下的樹(shù)形結(jié)構(gòu)。如下圖所示:


圖:數(shù)據(jù)封裝

1、 程序(模塊)層

所有屬于這一層的數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)庫(kù)均僅屬于某個(gè)程序,僅允許該程序?qū)ζ溥M(jìn)行訪問(wèn)。如數(shù)據(jù)庫(kù)1-1-1僅允許程序1-1-1訪問(wèn);數(shù)據(jù)庫(kù)2-1-1僅允許程序2-1-1訪問(wèn)。

處于這一層的數(shù)據(jù)庫(kù)通常是一些專用的數(shù)據(jù)庫(kù)。在所有數(shù)據(jù)庫(kù)里,這類數(shù)據(jù)庫(kù)所占比例不會(huì)很多。

2、 應(yīng)用層

所有屬于這一層的數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)庫(kù)均僅屬于某個(gè)應(yīng)用,允許屬于該應(yīng)用的所有程序?qū)ζ溥M(jìn)行訪問(wèn),但不允許其他應(yīng)用的訪問(wèn)。如數(shù)據(jù)庫(kù)1-1允許程序1-1-1訪問(wèn),也允許程序1-1-2訪問(wèn);數(shù)據(jù)庫(kù)2-1允許程序2-1-1訪問(wèn),也允許程序2-1-2訪問(wèn)。由于一個(gè)應(yīng)用也許會(huì)包含了許多程序,所以,屬于應(yīng)用層的數(shù)據(jù)庫(kù)將可能允許許多程序?qū)ζ溥M(jìn)行訪問(wèn)。該數(shù)據(jù)庫(kù)的修改會(huì)帶來(lái)所有屬于該應(yīng)用的許多程序的修改。

處于這一層的數(shù)據(jù)庫(kù)通常是一些對(duì)應(yīng)產(chǎn)品的數(shù)據(jù)庫(kù)。在所有數(shù)據(jù)庫(kù)里,這類數(shù)據(jù)庫(kù)所占比例相對(duì)較多。

3、 應(yīng)用組層

所有屬于這一層的數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)庫(kù)僅屬于某個(gè)應(yīng)用組,允許屬于該應(yīng)用組的所有程序?qū)ζ溥M(jìn)行訪問(wèn),但不允許其他應(yīng)用組的訪問(wèn)。如數(shù)據(jù)庫(kù)1允許程序1-1-1訪問(wèn),也允許程序1-2-2訪問(wèn);數(shù)據(jù)庫(kù)2允許程序2-1-1訪問(wèn),也允許程序2-2-2訪問(wèn)。由于一個(gè)應(yīng)用組會(huì)包含了大量程序,所以,屬于應(yīng)用組層的數(shù)據(jù)庫(kù)將允許大量程序?qū)ζ溥M(jìn)行訪問(wèn)。該數(shù)據(jù)庫(kù)的修改會(huì)帶來(lái)所有屬于該應(yīng)用組的大量程序的修改。為了使應(yīng)用組里的應(yīng)用相互能夠盡量的松耦合,在規(guī)劃數(shù)據(jù)架構(gòu)時(shí),應(yīng)盡量減少該層數(shù)據(jù)庫(kù)的數(shù)量。并且應(yīng)該只把數(shù)據(jù)結(jié)構(gòu)是相對(duì)穩(wěn)定、甚至是不變的數(shù)據(jù)庫(kù)配置在該層。

處于這一層的數(shù)據(jù)庫(kù)通常是一些產(chǎn)品線通用的數(shù)據(jù)庫(kù)。系統(tǒng)設(shè)計(jì)人員應(yīng)該盡量減少這類數(shù)據(jù)庫(kù)在所有數(shù)據(jù)庫(kù)里所占的比例。

4、 應(yīng)用群層

接下來(lái)的問(wèn)題是,是否要規(guī)劃歸屬于某個(gè)應(yīng)用群的數(shù)據(jù)庫(kù)呢?要回答這個(gè)問(wèn)題,我們要回到建立良好數(shù)據(jù)架構(gòu)的初衷。

建立良好的數(shù)據(jù)架構(gòu)就是為了能實(shí)現(xiàn)應(yīng)用的松耦合一個(gè)大的信息系統(tǒng),程序動(dòng)輒是萬(wàn)的數(shù)量級(jí)。而一個(gè)大系統(tǒng)通常也就幾個(gè)應(yīng)用群,那么,最大的應(yīng)用群程序也許上萬(wàn)。如果我們配置了屬于某個(gè)應(yīng)用群的數(shù)據(jù)庫(kù),由于該數(shù)據(jù)庫(kù)由該應(yīng)用群內(nèi)所有的程序共享,一個(gè)由上萬(wàn)程序共享的數(shù)據(jù)庫(kù),會(huì)成為該應(yīng)用群內(nèi)應(yīng)用松耦合的障礙。

當(dāng)然,不配置這類數(shù)據(jù)庫(kù)是理想的想法。實(shí)際上,如果不得不配置處于應(yīng)用群的數(shù)據(jù)庫(kù),這種數(shù)據(jù)庫(kù)一定要是相對(duì)靜態(tài)的數(shù)據(jù)庫(kù)。也就是說(shuō),該數(shù)據(jù)庫(kù)數(shù)據(jù)結(jié)構(gòu)不會(huì)變化,數(shù)據(jù)內(nèi)容在日常應(yīng)用里也基本不會(huì)變化。

最后,對(duì)數(shù)據(jù)封裝作一個(gè)總結(jié):

根據(jù)需要,我們把整個(gè)信息系統(tǒng)的所有數(shù)據(jù)庫(kù)按應(yīng)用架構(gòu)的層次,封裝到某一個(gè)層次的某個(gè)程序集合里。

封裝在某一層的某個(gè)程序集合里的數(shù)據(jù)庫(kù),只允許該層該程序集合的所有程序?qū)ζ溥M(jìn)行訪問(wèn)例。而不允許其他程序?qū)ζ溥M(jìn)行訪問(wèn)。可見(jiàn),越配置在高層的數(shù)據(jù)庫(kù),越多程序可以訪問(wèn)。從極端來(lái)設(shè)想,如果我們把所有數(shù)據(jù)庫(kù)都配置在信息系統(tǒng)的最頂層,就是說(shuō),信息系統(tǒng)的所有程序都可以訪問(wèn)信息系統(tǒng)的任何一個(gè)數(shù)據(jù)庫(kù)。那么,就等于完成沒(méi)有架構(gòu)可言。所以,從程序與數(shù)據(jù)松耦合的概念出發(fā),封裝在上層的數(shù)據(jù)庫(kù)應(yīng)該越少越好。這才是好的數(shù)據(jù)架構(gòu)。

(二)數(shù)據(jù)流轉(zhuǎn)與冗余

數(shù)據(jù)封裝帶來(lái)的好處一方面是數(shù)據(jù)隔離、數(shù)據(jù)安全,另一方面是松耦合。理論上,如果不能做到數(shù)據(jù)封裝,就不可能做到應(yīng)用的松耦合。

那么,在數(shù)據(jù)封裝的前提下,如何保證數(shù)據(jù)流轉(zhuǎn)與共享的效率。如果由于數(shù)據(jù)封裝嚴(yán)重影響數(shù)據(jù)的流轉(zhuǎn)效率,數(shù)據(jù)的封裝是否可行。這一直是令系統(tǒng)設(shè)計(jì)人員糾結(jié)的一個(gè)問(wèn)題。

數(shù)據(jù)冗余給數(shù)據(jù)封裝帶來(lái)可行性。

在不講究數(shù)據(jù)架構(gòu)時(shí),所有數(shù)據(jù)是隨意流轉(zhuǎn)與共享的。如果不考慮其他因素,數(shù)據(jù)完全共享對(duì)任意信息的取得效率是最高的。但在構(gòu)建了上述數(shù)據(jù)架構(gòu)后,數(shù)據(jù)全封裝起來(lái)了,數(shù)據(jù)變成好像是私有的。

與程序的服務(wù)調(diào)用管理規(guī)則一樣,數(shù)據(jù)的服務(wù)與流轉(zhuǎn)也是一種自頂而下的服務(wù)管理。如果某一個(gè)應(yīng)用需要的某個(gè)信息不在其封裝的數(shù)據(jù)庫(kù)里,該應(yīng)用只能通過(guò)其父系節(jié)點(diǎn),向目標(biāo)數(shù)據(jù)庫(kù)所屬的應(yīng)用進(jìn)行數(shù)據(jù)服務(wù)的調(diào)用,以取得所需信息。

舉例來(lái)說(shuō),如果程序1-1-1希望取得數(shù)據(jù)庫(kù)2.2.2的信息,其數(shù)據(jù)服務(wù)流程是:應(yīng)用群A→應(yīng)用組2→應(yīng)用2-2→程序2-2-2。應(yīng)用群A通過(guò)程序2-2-2取得相應(yīng)信息后,通過(guò)流程:程序2-2-2→應(yīng)用2-2→應(yīng)用組2→應(yīng)用群A→應(yīng)用組1→應(yīng)用1-1→程序1-1-1把信息交給程序1-1-1。這么一來(lái),增加了環(huán)節(jié),增加了系統(tǒng)內(nèi)部的信息交換流量,增加了機(jī)器處理開(kāi)銷,增加了響應(yīng)時(shí)間。一句話,降低了效率。見(jiàn)下圖:


圖:數(shù)據(jù)服務(wù)流程

上述情況應(yīng)該是一個(gè)特例。如果程序1-1-1真的會(huì)經(jīng)常需要取得數(shù)據(jù)庫(kù)2-2-2的信息,我們這樣的數(shù)據(jù)架構(gòu)設(shè)計(jì)就是一個(gè)失敗的例子。因?yàn)槲覀償?shù)據(jù)架構(gòu)規(guī)劃的原則就是程序與數(shù)據(jù)庫(kù)關(guān)系越是密切的,就越應(yīng)該配置在一起。并且應(yīng)該配置在同一個(gè)低層里(例如應(yīng)該把程序2-2-2和數(shù)據(jù)庫(kù)2-2-2配置在應(yīng)用1-1里)。

但不理想的特例總會(huì)存在。如果我們?cè)谙到y(tǒng)設(shè)計(jì)的時(shí)候已經(jīng)非常清楚程序1-1-1在某種情況下需要數(shù)據(jù)庫(kù)2-2-2的某些信息。而程序2-2-2與數(shù)據(jù)庫(kù)2-2-2有有充分的理由應(yīng)該配置在應(yīng)用2-2里。那么,為了平衡松耦合與效率,我們還可以通過(guò)把數(shù)據(jù)庫(kù)2-2-2中程序1-1-1會(huì)需要的信息冗余封裝到程序1-1-1里。如果不光程序1-1-1會(huì)需要該信息,程序1-1-2也會(huì)需要該信息,我們可以把信息冗余封裝在應(yīng)用1-1里。

數(shù)據(jù)冗余的設(shè)計(jì)把相同的數(shù)據(jù)配置多個(gè)版本。其中數(shù)據(jù)母體我們稱之為源數(shù)據(jù),冗余版本稱之為輔數(shù)據(jù)。數(shù)據(jù)冗余要遵循以下原則:

1、 兼顧效率

數(shù)據(jù)冗余可以提高效率,但數(shù)據(jù)冗余增加了系統(tǒng)的復(fù)雜度,帶來(lái)額外的空間開(kāi)銷和管理維護(hù)開(kāi)銷,不應(yīng)該濫用。在兼顧效率時(shí)要平衡效率與復(fù)雜的關(guān)系。

2、 數(shù)據(jù)同步

源數(shù)據(jù)的增、刪、改的權(quán)限在源數(shù)據(jù)歸屬的應(yīng)用。當(dāng)源數(shù)據(jù)發(fā)生變化時(shí),輔數(shù)據(jù)要及時(shí)同步變化。以保證數(shù)據(jù)的一致性和準(zhǔn)確性。至于怎么樣算“及時(shí)”,用什么手段進(jìn)行數(shù)據(jù)同步,要視具體冗余數(shù)據(jù)的性質(zhì)而定。

3、 冗余數(shù)據(jù)的選擇

由于存在數(shù)據(jù)同步的管理,為了減少同步的頻繁度和復(fù)雜度,冗余數(shù)據(jù)通常應(yīng)該是一些靜態(tài)數(shù)據(jù)或者同步實(shí)時(shí)性要求不高的數(shù)據(jù)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多