Posted on 2005-12-28 22:22
canonical 閱讀(877)
評論(0) 編輯 收藏 所屬分類:
Witrix開發(fā)平臺
關(guān)系數(shù)據(jù)庫提供的是集合存儲模型, query(fields, condition) ==> list of records, 可以從條件集合映射到記錄集合。
當(dāng)condition退化為單一的key, 而fields采用默認(rèn)值的時候,我們就退化到Map語義, 從key對象映射到value對象,而不是從集合映射到集合。
很
多時候我們只需要這種簡單Map語義的存儲模型,例如用戶偏好設(shè)置的存儲。在這種受限的模型下我們也可以更直接的實(shí)現(xiàn)cache支持。如果我們希望在
Map的基礎(chǔ)上稍微擴(kuò)展一些集合操作的特性,可以通過key的結(jié)構(gòu)擴(kuò)展來實(shí)現(xiàn)。即規(guī)定key采用類似url格式的字符串,實(shí)現(xiàn)key空間的樹形結(jié)構(gòu)。在
witrix平臺中,這種樹形結(jié)構(gòu)的映射關(guān)系通過IVarValueSet接口來實(shí)現(xiàn)。
interface IVarValueSet{
IVariant getVar(String name);
// 得到前綴為prefix的所有變量構(gòu)成的子集合,注意這里自然退化的特點(diǎn)
IVarValueSet getSubSet(String prefix);
}
變量名的格式規(guī)定為 a.b.c 或者/a/b/c. 這種變量結(jié)構(gòu)的組織和劃分方式其實(shí)與JBoss項(xiàng)目中的TreeCache結(jié)構(gòu)類似。