我正在圍繞很多分層數據編寫應用程序。目前,層次結構是固定的,但未來可能會將新項目添加到層次結構中。 (請讓他們離開)應該將核心應用程序配置存儲在數據庫中,如果有的話應該採取什麼措施來保護它們?
我目前的應用程序和數據庫設計是相當通用的,沒有任何處理層次結構中的特定節點的硬編碼,除了驗證和查找函數寫入從每個節點的特定數據庫檢索外部數據。從設計的角度來看,這讓我感到滿意,但我很緊張地認識到整個應用程序依賴於數據庫中的一些記錄。我也很沮喪,我必須用數據庫觸發器而不是外鍵約束強制執行數據完整性的某些方面(例如,層次結構中的幾個不同節點都有自己的專有ID,並將它們存儲在單個列中,當加上節點ID可以用來定位外部數據)。
我開始懷疑將這些已知節點簡單硬編碼到系統中是否合適,以便它更「安全」並且通用性更低。
如何知道什麼時候應該硬編碼,什麼時候應該是配置項?這是否僅僅是對清晰度/安全性的成本效益分析,而不是稍後的工作量較少,還是我缺少一些我應該用來確定這是否合適的指標。
我正在採取的保護這些有價值配置的步驟是添加防止更新/刪除的觸發器。此應用程序使用的數據庫用戶只能通過存儲過程操作數據。我還可以做些什麼?
很好的迴應! – Vinnie 2010-03-11 19:36:33