Sử dụng Datomic, tôi đang cố gắng nghĩ về làm thế nào tôi có thể lồng một danh sách trong một danh sách?Cấu trúc lồng nhau Với Datomic
Ví dụ về cấu trúc dữ liệu Clojure sẽ là một cái gì đó (xem fig.1). Tôi biết rằng Datomic có khái niệm tham chiếu (ví dụ: fig.2). Nhưng những thứ đó trông giống như các loại vô hướng, không phải là vật thể (mỗi lần).
[{: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}]}]
Hình 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]
hình 2
[EDIT]
Thực ra, tôi nghĩ rằng tôi có thể đã tìm thấy câu trả lời here. Tôi đã đi qua cơ sở mã Day-Of-Datomic và tìm thấy ví dụ bên dưới. Nhưng tôi vẫn không rõ ràng về những gì gắn một cách rõ ràng : namespace comments đến : comment/body (hoặc : comment/tác giả) namespace (s). Datomic có sử dụng quy ước để liên kết : nhận xét đến : nhận xét?
;; 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}]
Hình 1
Không có mối quan hệ nào: nhận xét và: nhận xét/nội dung. Nó chỉ là một quy ước đặt tên. Để biết ví dụ về cách duy trì danh sách danh sách, hãy xem câu trả lời của tôi bên dưới. Tôi đã sử dụng hai định nghĩa thuộc tính ngẫu nhiên để duy trì tương đương với [["a" "b" "c"] ["d" "e" "f"]] trong Clojure. – a2ndrade