我想組織我的系統的某些部分,但我無法選擇方便的數據表示形式來與我的應用進行交互。 所以我有數據對象的一些地方「庫」,descripted如下:弱類型對象的數據庫
Object1
{ id = TypeId, field1 = value1, otherObjectSpecifedField = value2 ... }
...
有許多對象(例如1000)的許多類型(例如50)的。每種類型都有自己的UniqueId和他自己的描述和字段集合。
接下來的事情是,對於每個對象我有一組過濾器,它對應於此對象現在是實際的。它看起來像這樣:
Filter
{ filterName1 = filterValue, filterName2 < filterValue }
Object // filter is applied for this object
{ ... }
使用這個「倉庫」的過程:
在我的應用程序,我有應用程序的狀態,這意味着過濾器上面。 實例:應用本地化可以「恩」(我的應用程序知道此值,並可以改變它在啓動時),我們有過濾器,名爲「本地化」,並在我們的資料庫,我們可以用這樣的:
Filter { localization = 'en'} Object1 { ... } // this object i should choose when localization is en
當我的應用程序決定檢查哪些obects現在是實際的時候它來到存儲庫並詢問它:「在這裏你需要一個TypeId,並且請遍歷每個過濾器+對象對,並通過過濾器說出實際的對象是什麼,如果你需要解決一些過濾器的價值(從上面的例子本地化),我會爲你解決它們「。
然後,資源庫遍歷每個對象,並比較哪些是現實的過濾器,哪些不是實際的應用。因此,他檢查每個對象的每個過濾器,並只在所有對象都是實際的並且在運行時執行過的情況下才給出它。
在當前實施這套fiters +對象存儲在XML文件中非常特殊的XML格式,這是從舒適的應用程序來讀取,但很難由人類來維持。我認爲有一些地方可以優化所有流程。我認爲我們可以通過對象遍歷並將其過濾器與其他人進行比較。 現在我想在NoSQL面向文檔的數據庫方面。因爲每個對象都有其獨特的結構,並且可能使用選擇例程,我可以選擇我需要的。
也許有人對這種類型的數據庫組織有什麼建議?也許你知道這種類型的數據的一些特定的數據結構?