像外鍵,約束,默認值等項目應該由數據庫管理系統(在這種情況下,MS Sql 2005)或應用程序?我聽到了雙方的意見,我真的不知道要走哪條路。我的RDBMS或我的應用程序句柄數據庫參照完整性?
我原本打算將其建成數據庫,但是我發現這並不總是可能與當前數據庫的設計,我有。例如,某些表格包含循環引用,並且不能使用ON UPDATE CASCADE
進行鏈接。我遇到的另一個問題是我們將有可能使用多個數據庫/服務器,並且外鍵約束在連接的服務器上不起作用。
我有一些開發商建議我做應用層上的數據驗證和離開數據庫只是 - 一個存儲數據的地方。我喜歡這個想法,但是我在很多地方讀到,最好在數據庫中構建參照完整性以允許不通過應用程序層的事務。我同意,雖然我們完成所有數據庫交易應該通過應用程序。即使我們稍後決定構建插件,我們也使用ObjectModel框架,因此插入/更新/刪除查詢不需要重寫。
所以我的問題是,在這種情況下,你會仍然建議建立參照完整性到數據庫或者是確定其建成應用層呢?爲什麼?
它並不真正「免費」。由於數據庫必須確保RI,所以在插入,刪除和上載過程中涉及一些性能成本。 – 2011-11-21 15:36:24