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

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

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

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    是否應該建外鍵的討論

    Posted on 2008-04-14 20:44 leekiang 閱讀(1234) 評論(0)  編輯  收藏 所屬分類: 架構設計
    http://www.javaeye.com/topic/124612
    http://www.javaeye.com/topic/2832
    http://www.javaeye.com/topic/8283
    http://www.javaeye.com/topic/151187
    http://www.javaeye.com/topic/2312

    http://www.itpub.net/viewthread.php?tid=510215&extra=&page=1

    以下摘幾個我自己認同的觀點:
    1,
    其實有一段時間我們的開發人員也有這種想法,以為程序可以控制好
    后來發現沒有外鍵的表里經常有垃圾數據(找不到父親的孩子),然后又把外鍵一一加上去,后面測試才發現是應用的BUG,在特定情況下才會發生的BUG。
    如果沒有外鍵那數據庫就不會報錯,也就是說垃圾數據不能阻止。
    2,在復雜的業務邏輯下,程序來保證這個是極不可靠的,只有交給數據庫從底層來保證才能避免出錯。
    當然,如果是穩定的程序中把外鍵去掉會怎么樣,這又是另一回事了。
    外鍵的存在對數據庫的維護來說是有一些不方便的地方。
    3,我們以前做開發的時候,在開發、測試階段,是所有業務邏輯需要的外鍵都加上的。數據量小,并發少,也無所謂什么性能什么的。等測試和試運行一段時間后,再將外鍵去掉,以提高性能。
    4,怎么這么多人不用外鍵的,外鍵可是邏輯的約束啊!說外鍵影響性能,可以denormalize外鍵表啊,但是插入更新必須要符合約束啊,我覺得這是不可替代的啊
    對數據的約束最好盡可能放到db里,集中管理清晰準確,以前吃過應用管理約束的虧,不過好好看看oracle sap這些范式做的都還不錯啊,他們都這樣做我想多少能說明點問題吧
    5,你看看oracle系統數據表的設計,再看看大型數據庫表的設計,
    你就明白,外鍵約束無處不在.
    6,該用的地方,就一定要用!前幾天我們的應用程序發現一個bug,后來我仔細一查,就是由于沒有使用外建,數據不匹配導致的。教訓深刻!
    7,如果現在要我來選擇,我決定是要用的一定要用,這是系統設計的嚴謹性的要求,不然產生一堆垃圾數據,這是在一個好的系統中是不允許的。
    8,呵呵,做過開發的DBA應該都會有這樣的體會
    當統計報表中的數據不對的時候就知道什么叫問題嚴重了,要一點點數據去核查。
    9,最好還是使用數據庫外鍵這個最直觀的功能吧
    至于性能不知有沒有什么測試數據,究竟能慢到什么程度,不要聽說會慢就不用吧(呵呵,從TOM的書里學到的)
    10,這要看是建立那中類型的數據庫了
    如果是操作類型的數據庫 OLTP 面向應用的
    數據的規范化是很有必要的.. 該用外鍵的情況一定要用.
    如果是面向部門 用于OLAP或建立數據倉庫.
    這種時候 往往需要反規范化 存取效率是首要因素

    我自己的結論:如果是做企業級的OLTP應用,并且數據量不是非常大的話,一定要建外鍵。畢竟對于企業來說,保證數據的正確性是最重要的。但如果經過長時間的運行證明代碼可靠、并且數據量已經很大,這時也可以去掉外鍵以提高運行速度。
    主站蜘蛛池模板: 一级毛片人与动免费观看| 亚洲一本一道一区二区三区| 中文字幕在线成人免费看| 亚洲精品97久久中文字幕无码| 深夜a级毛片免费视频| 亚洲国产精品综合久久一线| 色婷婷精品免费视频| 国产一级一片免费播放| 免费无码国产在线观国内自拍中文字幕| 日韩免费三级电影| 无忧传媒视频免费观看入口| MM131亚洲国产美女久久| 香蕉视频在线免费看| 亚洲av午夜福利精品一区| 99精品国产成人a∨免费看| 亚洲人成电影在线观看青青| 午夜宅男在线永久免费观看网| 激情内射亚洲一区二区三区爱妻 | 亚洲va中文字幕无码久久不卡| 99在线视频免费观看| 1区1区3区4区产品亚洲| 国拍在线精品视频免费观看| 蜜臀亚洲AV无码精品国产午夜.| 日韩中文字幕在线免费观看| 四虎影视永久在线精品免费| 亚洲Av综合色区无码专区桃色| 亚洲三级在线免费观看| 一本天堂ⅴ无码亚洲道久久| 亚洲AV成人潮喷综合网| 成人免费区一区二区三区| 91亚洲视频在线观看| 日本不卡视频免费| 两个人日本WWW免费版| 亚洲一本之道高清乱码| 亚洲成年人啊啊aa在线观看| 国内精品久久久久影院免费| 中文日韩亚洲欧美制服| 中文字幕亚洲乱码熟女一区二区 | yy一级毛片免费视频| 久久亚洲精精品中文字幕| 午夜一级免费视频|