<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hopes

    Start Here..

     

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

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

     

    http://junjunbest.iteye.com/blog/395421

     

    ================================================================================================================================

     

    字典表設(shè)計(jì)及應(yīng)用舉例      為了響應(yīng)志峰兄弟的需求,今天抽了點(diǎn)時(shí)間寫點(diǎn)關(guān)于字典表設(shè)計(jì)的東西,順便結(jié)合一個(gè)小的應(yīng)用對(duì)設(shè)計(jì)做個(gè)用例體驗(yàn)。
    咱先來(lái)看看什么叫字典。
         時(shí)間緊張,先略了,以后再談呵呵
    字典存在的必要性及他的好處。
         同上^_^
    字典設(shè)計(jì)思路。
         字典信息在系統(tǒng)中充當(dāng)基礎(chǔ)參數(shù)的角色,基本上有些重要的基本信息是要在系統(tǒng)在為正式業(yè)務(wù)服務(wù)之前就由系統(tǒng)管理員維護(hù)進(jìn)去的,有的字典信息是在使用過(guò)程中由系統(tǒng)管理員或者其他用戶維護(hù)進(jìn)去的。

         也就是說(shuō),我們有“維護(hù)字典信息”的需求,那么我們?cè)谠O(shè)計(jì)字典信息表結(jié)構(gòu)的時(shí)候就要考慮到這個(gè)需求。
         在維護(hù)的時(shí)候,我們肯定希望能對(duì)字典信息分文別類的進(jìn)行維護(hù),這樣我們需要設(shè)計(jì)一個(gè)字典類類別表(Dic_Type),結(jié)構(gòu)如下:
         ID(字典類型ID) 
      Name(字典類型名稱)

         具體表數(shù)據(jù)特征請(qǐng)看下面的例子。
         有了類別表后,我們還需要一個(gè)存放每個(gè)類別的字典信息的具體數(shù)據(jù)表(Dic_Data):\

         ATID(自動(dòng)增長(zhǎng)的ID,沒(méi)有實(shí)際作用) 
      TypeID(字典信息歸屬的字典類別ID)
      ID(字典信息ID,在程序中使用的字典ID就是這個(gè))
      Name(字典信息內(nèi)容)

         這樣,在我們的業(yè)務(wù)信息表中,存放的和字典相關(guān)的字段的值就是Dic_Data中的ID的值,那么就涉及到在界面上顯示信息的問(wèn)題,如果不做處理,顯示出來(lái)的肯定就是原始的字典信息的ID,肯定不是用戶希望得到的,基于這個(gè)需求,
      我們?yōu)槊總€(gè)類型的字典信息做一個(gè)視圖(具體方法見后面的例子),
      將信息表與對(duì)應(yīng)的視圖做關(guān)聯(lián)查詢就可以得到字典信息ID對(duì)應(yīng)的真正內(nèi)容。

    應(yīng)用舉例。
         假定做一個(gè)學(xué)生信息管理系統(tǒng)
         字典類型表設(shè)計(jì)如下(Dic_Type):
         ID Name
         1  Sex
         2  ...

         字典內(nèi)容表設(shè)計(jì)如下(Dic_Data):
         ATID TypeID ID Name
         1    1      1   男
         2    1      2   女
         3    2      1   ...
         4    2      2   ...
         5    2      3   ...
         6    2      4   ...
        ...  ...    ...  ...

         性別類型字典的視圖(VW_Sex):
         select ID,Name from Dic_Data where TypeID=1

         假設(shè)學(xué)生信息表如下T_Student:
         ID Name  ... Sex
         1  采采  ...  1
         2  花花  ...  2
         3  剛剛  ...  1

         取學(xué)生列表信息可通過(guò)如下方法實(shí)現(xiàn):
         select T_Student.ID as StudentID,T_Student.Name as StudentName,VW_Sex.Name as SexName
         from T_Student left join VW_Sex on T_Student.Sex=VW_Sex.ID

         結(jié)果如下:
         StudentID  StudentName  SexName
         1              a            男
         2              b            女
         3              c            女

     

    時(shí)間倉(cāng)促,寫的粗糙了點(diǎn),還請(qǐng)見諒,有時(shí)間再補(bǔ)充。。。

    綠色通道:好文要頂關(guān)注我收藏該文與我聯(lián)系

     

    ================================================================================================================================

     

    我們現(xiàn)在在進(jìn)行數(shù)據(jù)庫(kù)字典表設(shè)計(jì)時(shí),有二種方式,其一是傳統(tǒng)的方式,每個(gè)字典表都有ID、Name兩字段。第二種方式是將所有字典表的數(shù)據(jù)放在同一張表中,結(jié)構(gòu)如下:

    TypeTable(typeID,typeName)【主表,用來(lái)記錄字典表表名信息】;DataTable(typeID,DataId,DataName)【從表,記錄所有字典表數(shù)據(jù)信息】

    如性別、婚姻狀態(tài),在TypeTable中是兩條記錄,{02,性別},{06,婚姻狀態(tài)};而在DataTable中各有三條記錄{02,0,女 / 02,1,男 / 02,9,其它},{06,0,未婚 / 06,1,已婚 / 06,9,離異}

    另有一張病人列表patient(patientID,SexID,MarryStatusID…)

    現(xiàn)在需要查詢病人信息,sql語(yǔ)句如下:

    Select b.DataName as SexName,c.DataName as MarryStatusName

    from patient a left join DataTable b on b.DataId=a.SexID and b.typeID=’02’

    left join DataTable c on c.DataId=a.MarryStatusId and b.typeID=’06’


    在數(shù)據(jù)庫(kù)中執(zhí)行該Sql語(yǔ)句,由于DataTable約1000條左右的數(shù)據(jù)量,相對(duì)第一種方式必將對(duì)數(shù)據(jù)庫(kù)有一定的影響。

    (當(dāng)然在實(shí)際業(yè)務(wù)中可能類似的字典表約達(dá)5-10個(gè),patient的數(shù)據(jù)量約500w條)


    但不知道在一個(gè)系統(tǒng)中所有字典表獲取數(shù)據(jù)都采用這種方式對(duì)數(shù)據(jù)庫(kù)性能到底影響到什么程度,約降低百分之幾的性能?會(huì)有其它隱患沒(méi)?

    ================================================================================================================================

    樓上的可能沒(méi)明白樓主的意思。

    不是指學(xué)歷表和國(guó)籍表數(shù)據(jù)量大,而是指人員表所具有的屬性可能太多(這里不一定指人員表,也可能是其它的實(shí)體,即隨著系統(tǒng)的復(fù)雜程度增加,實(shí)體的屬性增加)。這里以人員為例,說(shuō)了國(guó)籍和學(xué)歷兩個(gè)屬性,如果人員還有職位,那么必然多出職位表,如果還有其它...

    那即,當(dāng)取得一條實(shí)例的完全數(shù)據(jù)時(shí),那將進(jìn)行幾十個(gè)表的join,樓主考濾的應(yīng)該是這個(gè)問(wèn)題。

    person_info(person_id,name,country_id,education_id,position_id,....) 
    country(country_id,name,...) 
    position(position_id,name,...) 
    education(education_id,name,....) 
    ...


    所以樓主采用了另一種設(shè)計(jì)方式: 
    所有屬性類(屬性本身也是實(shí)體,只不過(guò)是主表的某個(gè)屬性)放置在一個(gè)表中,用屬性名和屬性值來(lái)區(qū)別。 
    persion_info(persion_id,name,...) 
    1 aaa 
    2 bbb 
    attributes(attributes_id,persion_id,attributes_name,attributes_value) 
    1 1 country china 
    2 1 education 小學(xué) 
    3 1 position 公司總裁 
    4 2 country usa 
    5 2 education 碩士 
    6 2 postion DBA 

    posted on 2012-08-06 10:35 ** 閱讀(15111) 評(píng)論(3)  編輯  收藏

    評(píng)論

    # re: 數(shù)據(jù)庫(kù)字典表設(shè)計(jì) 2014-10-11 17:26 asd

    you is 逗比?  回復(fù)  更多評(píng)論   

    # re: 數(shù)據(jù)庫(kù)字典表設(shè)計(jì) 2014-12-11 13:30 dee

    @asd
    哈哈 你在自黑嗎 英文不會(huì)說(shuō)就不要說(shuō) 說(shuō)錯(cuò)了丟人噠  回復(fù)  更多評(píng)論   

    # re: 數(shù)據(jù)庫(kù)字典表設(shè)計(jì) 2016-04-27 16:06 dsfasf

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


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊(cè)

    收藏夾

    C#學(xué)習(xí)

    友情鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲av无码成人精品区一本二本| 亚洲激情视频在线观看| 2019亚洲午夜无码天堂| 国产a视频精品免费观看| 亚洲第一页在线播放| 1000部夫妻午夜免费| 亚洲精品不卡视频| 日本XXX黄区免费看| 亚洲精品第一国产综合野| 毛片基地免费视频a| 亚洲国产欧美日韩精品一区二区三区| 免费无码又爽又刺激高潮| 亚洲av成人一区二区三区观看在线 | 1000部拍拍拍18勿入免费视频软件 | 亚洲综合亚洲综合网成人| 一级全免费视频播放| 狠狠综合久久综合88亚洲| 七色永久性tv网站免费看| 精品无码一区二区三区亚洲桃色| 最近免费字幕中文大全视频| 亚洲国产亚洲片在线观看播放| 欧美最猛性xxxxx免费| 亚洲AV无码一区二区三区鸳鸯影院| 亚洲AV无码乱码在线观看牲色 | 99久久亚洲精品无码毛片| 色窝窝免费一区二区三区 | 免费无码又爽又黄又刺激网站| 亚洲中久无码不卡永久在线观看| 青青操免费在线视频| 亚洲码一区二区三区| 国产成人免费a在线资源| 中文永久免费观看网站| 亚洲嫩草影院在线观看| 在线看片无码永久免费aⅴ | 亚洲国产成人精品青青草原| 手机看片久久国产免费| 日本免费A级毛一片| 亚洲精品天堂在线观看| 一本久久a久久精品亚洲| AV大片在线无码永久免费| 国产亚洲日韩在线a不卡|