我們正在設計一個新應用程序,並在思考數據所有權時遇到了一些架構問題。數據所有權和性能
我們將系統分解爲組件,例如Customer和Order。每個組件/模塊都負責特定的業務領域,即客戶處理客戶的CRUD和以客戶爲中心的業務流程(註冊新客戶,阻止客戶賬戶等)。每個模塊都是一組數據庫表的所有者,只有該模塊可以訪問它們。如果另一個模塊需要另一個模塊擁有的數據,它將通過從該模塊請求數據來檢索它。
到目前爲止這麼好,問題是如何處理情景,如需要向所有客戶展示所有客戶以及爲每個客戶提供他所有訂單的報表?在這種情況下,我們需要從Customer模塊中獲取所有客戶,遍歷它們併爲每個客戶獲取Order模塊中的所有數據。性能不會很好......顯然,存儲proc加入客戶表和訂單表會更好,但這也意味着直接訪問另一個模塊擁有的數據,從而創建耦合和依賴關係,我們希望避免。
這是一個簡化的例子,我們正在處理一個有很多業務實體和關係的企業應用程序,我的目標是保持它的乾淨和儘可能鬆散耦合。我預計未來會對數據方案進行很多更改,並可能將系統分成幾個完全獨立的系統。我希望有一個能夠以相對簡單的方式完成這項工作的設計。