• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            飯中淹的避難所~~~~~

            偶爾來(lái)避難的地方~

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              94 隨筆 :: 0 文章 :: 257 評(píng)論 :: 0 Trackbacks
            【數(shù)據(jù)庫(kù)部分】
            數(shù)據(jù)庫(kù)的表結(jié)構(gòu)方面沒(méi)有特殊要求。
            所有操作都必須做成存儲(chǔ)過(guò)程供應(yīng)用程序來(lái)調(diào)用。
            每個(gè)存儲(chǔ)過(guò)程的首參數(shù)是一個(gè)輸出的int,名為ret。其他參數(shù)排布在其后。
            存儲(chǔ)過(guò)程中所有操作使用事務(wù)包裹起來(lái),并設(shè)置異常處理。處理方式是rollback,并設(shè)置ret為約定的缺省錯(cuò)誤碼(實(shí)際使用時(shí)設(shè)置為-1)
            存儲(chǔ)過(guò)程向應(yīng)用程序返回?cái)?shù)據(jù)時(shí),用“select 行標(biāo)識(shí),其他字段”的方式。其中,行標(biāo)識(shí)的作用是指定該條數(shù)據(jù)的類(lèi)型。這個(gè)類(lèi)似網(wǎng)絡(luò)通信封包的命令號(hào)的概念。
            ret為OK(實(shí)際使用時(shí)值為0)表示存儲(chǔ)過(guò)程無(wú)錯(cuò)執(zhí)行。其他值表示有錯(cuò)誤。
            存儲(chǔ)過(guò)程要返回錯(cuò)誤時(shí),設(shè)置ret為要返回的錯(cuò)誤號(hào)碼,并rollback,然后leave最高層begin,end。

            【應(yīng)用程序部分】
            調(diào)用存儲(chǔ)過(guò)程時(shí),使用統(tǒng)一的接口,調(diào)用參數(shù)打成一個(gè)包(實(shí)際使用時(shí)采用網(wǎng)絡(luò)封包相同的容器)。
            返回的數(shù)據(jù)行,通過(guò)行首的“行標(biāo)識(shí)”字段來(lái)識(shí)別其數(shù)據(jù)含義。
            當(dāng)返回的ret不是OK值(0)時(shí),則不處理返回的任何數(shù)據(jù)行。
            【優(yōu)化】
            建立數(shù)據(jù)庫(kù)連接池。
            在線程池中進(jìn)行存儲(chǔ)過(guò)程的調(diào)用。并對(duì)返回?cái)?shù)據(jù)進(jìn)行打包(vector)
            在邏輯線程中進(jìn)行數(shù)據(jù)的處理。
            使用協(xié)程技術(shù),將異步的數(shù)據(jù)庫(kù)操作變成同步的執(zhí)行順序。
            【通用性和擴(kuò)展性】
            調(diào)用時(shí)使用的是封包容器,所以整個(gè)應(yīng)用程序(一般為服務(wù)器應(yīng)用)數(shù)據(jù)容器都非常統(tǒng)一,而且接口也可以做成非常一致。簡(jiǎn)單的說(shuō)就是像發(fā)網(wǎng)絡(luò)封包一樣調(diào)數(shù)據(jù)庫(kù)。
            返回的數(shù)據(jù),都是帶“命令號(hào)”的,可以用處理網(wǎng)絡(luò)封包的方式去處理。在服務(wù)器應(yīng)用中,也是能夠和各種服務(wù)邏輯統(tǒng)一在一起。
            要擴(kuò)展數(shù)據(jù)庫(kù)操作,只要寫(xiě)存儲(chǔ)過(guò)程,并處理新增的數(shù)據(jù)命令號(hào)即可,減少了很多重復(fù)的工作,提高了數(shù)據(jù)庫(kù)相關(guān)邏輯的開(kāi)發(fā)速度。

            posted on 2011-04-28 15:56 飯中淹 閱讀(2092) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): 游戲服務(wù)器

            評(píng)論

            # re: 【一種通用性擴(kuò)展性較強(qiáng)的數(shù)據(jù)庫(kù)解決方案】 2011-04-28 19:52 megax
            我記得,這是很久以前很久以前使用vb的時(shí)候的做法了吧。。。現(xiàn)在是orm的時(shí)代嘍  回復(fù)  更多評(píng)論
              

            # re: 【一種通用性擴(kuò)展性較強(qiáng)的數(shù)據(jù)庫(kù)解決方案】 2011-04-29 07:39 飯中淹
            @megax
            Vb的數(shù)據(jù)庫(kù)部分沒(méi)用過(guò),不清楚
            不過(guò)c++里面數(shù)據(jù)庫(kù)的orm不是很好實(shí)現(xiàn),也沒(méi)有很多好的庫(kù)。
            另外是效率和異步考慮,數(shù)據(jù)庫(kù)操作必須可控
            還有必要的靈活性
            所以使用了存儲(chǔ)過(guò)程和連接線程池

            不過(guò),我找到一個(gè)新的方法來(lái)降低邏輯層的數(shù)據(jù)庫(kù)相關(guān)復(fù)雜度。也是類(lèi)似對(duì)象關(guān)系映射,我的方法是根據(jù)對(duì)象生成一個(gè)字段模型(字段偏移和類(lèi)型表),這個(gè)作為映射中心,網(wǎng)絡(luò)封包、數(shù)據(jù)庫(kù)表作為映射源和目標(biāo)。字段模型可外部編輯并從模型生成實(shí)體。

            然后底層還是這種連接池。

              回復(fù)  更多評(píng)論
              

            亚洲乱码中文字幕久久孕妇黑人| 日韩欧美亚洲综合久久影院Ds | 久久精品亚洲男人的天堂| 国产成人无码精品久久久久免费 | 欧美黑人激情性久久| 久久这里只有精品18| 狠狠人妻久久久久久综合| 国产香蕉久久精品综合网| 精品久久久久久中文字幕| 一本久久精品一区二区| 久久精品国产亚洲综合色| 久久久久久精品免费免费自慰| 久久99精品国产一区二区三区| 一本色道久久综合| 久久青青草原国产精品免费| 狠狠色丁香婷婷久久综合| 久久99热这里只有精品国产 | 91精品国产91久久久久久| 亚洲午夜无码久久久久| 日本精品一区二区久久久 | 久久久久久国产精品美女| 狠狠人妻久久久久久综合| 97久久超碰国产精品旧版| 伊人久久无码中文字幕| 一级女性全黄久久生活片免费 | 亚洲伊人久久大香线蕉综合图片| 久久国产福利免费| 99久久精品国产一区二区| AAA级久久久精品无码片| 亚洲中文字幕久久精品无码APP | 国产99久久久国产精品小说| 久久本道综合久久伊人| 久久99精品综合国产首页| 东方aⅴ免费观看久久av| 婷婷久久综合九色综合九七| 精品国产乱码久久久久久浪潮| 久久99国产亚洲高清观看首页 | 欧美国产成人久久精品| 青青青青久久精品国产h久久精品五福影院1421 | 久久精品国产免费观看| 亚洲精品无码久久久久AV麻豆|