使用Datomic,我試圖想到如何在列表中嵌套列表?使用Datomic嵌套結構
一個Clojure數據結構的例子可能是(參見圖1)。我知道Datomic具有參考的概念(例如圖2)。但是這些看起來像標量類型,而不是對象(本身)。
[{:id 0,
:symbol DDD,
:company 3D Systems Corporation,
:price-difference 1.3100000000000023,
:event-list [{high 35.11,
tickerId 0,
WAP 34.491,
open 35.07,
date 20130426,
count 3403,
low 33.8,
hasGaps false,
close 34.53,
field historicalData,
volume 8667,
type historicalData}]}]
圖1
{:db/id #db/id[:db.part/db]
:db/ident :district/region
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/one
:db/doc "A district region enum value"
:db.install/_attribute :db.part/db}
;; district/region enum values
[:db/add #db/id[:db.part/user] :db/ident :region/n]
[:db/add #db/id[:db.part/user] :db/ident :region/ne]
[:db/add #db/id[:db.part/user] :db/ident :region/e]
[:db/add #db/id[:db.part/user] :db/ident :region/se]
[:db/add #db/id[:db.part/user] :db/ident :region/s]
[:db/add #db/id[:db.part/user] :db/ident :region/sw]
[:db/add #db/id[:db.part/user] :db/ident :region/w]
[:db/add #db/id[:db.part/user] :db/ident :region/nw]
圖2
[編輯]
其實,我想我可能已經找到了答案here。我正在通過Day-Of-Datomic代碼庫,並找到下面的示例。但我仍然沒有什麼明確的聯繫在一起明確:評論命名爲:評論/體(或:評論/作者)命名空間(S)。 Datomic是否只使用約定來鏈接:評論到:評論?
;; comments
[{:db/id #db/id[:db.part/db]
:db/ident :comments
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/many
:db/isComponent true
:db.install/_attribute :db.part/db}
{:db/id #db/id[:db.part/db]
:db/ident :comment/body
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db.install/_attribute :db.part/db}
{:db/id #db/id[:db.part/db]
:db/ident :comment/author
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/one
:db.install/_attribute :db.part/db}]
圖1
沒有任何聯繫:評論和:評論/正文。這只是一個命名約定。有關如何保存列表列表的示例,請參閱下面的答案。我使用了兩個隨機屬性定義來在Clojure中保留等價於[[「a」「b」「c」] [「d」「e」「f」]]]。 – a2ndrade 2013-04-26 20:17:31