簡體   English   中英

圖形數據庫模式設計 - 這適用於neo4j嗎?

[英]Graph database schema design - Is this suitable for neo4j?

場景:一個簡單的地址簿,用戶可以在其中創建自己的聯系人,並通過將它們分組添加來組織它們。 聯系人可能有多個地址。

我創建了以下圖表:[schema-design] [1]

我想查詢放在x組中並居住在y國的所有聯系人。

這種模式設計是否足以滿足這些目的(我想使用neo4j數據庫)?

看起來country的概念應該是圖表中的一等公民,因為您的查詢取決於它。 圖形模型設計通常會受到查詢模式的影響。

所以我建議為每個國家Country設置一個標記為Country的節點,並將Address節點與:LOCATED_IN關系連接到該國家/地區。 (從而從國家/地區節點中刪除國家/地區屬性)。

通過該更改,您的查詢就像以下一樣簡單:

MATCH (:Group{name:'family'})<-[:placed_in_group]-(contact)-[:lives-at]->()-[:LOCATED_IN]->(:Country{name:'US'})
RETURN contact

如stefan Armbruster所指出的,一種選擇是從國家地址獲得另一個節點。 如果您不想更改數據結構,只需在Address的“country”字段中添加索引即可。 然后你可以有一個查詢

MATCH (:Group{name:'family'})<-[:placed_in_group]-(contact)-[:lives-at]->(:Address{country:'US'})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM