這是我的方案(使用一個完全虛構的應用程序):Neo4j的:正確的方式來建模聯繫人和用戶之間的關係
- 喬「競賽玩具反斗城」,這可以幫助用戶爲他們的業務創造新的競賽報
- 喬讓人們親自爲比賽報名(有些不知道如何使用計算機)
- 喬然後使用「競賽玩具反斗城」創造簽署了每個人一個新的
contact
和填充他們的信息(名字,姓氏,電話)等。這是從中抽取勝利者的人羣。 - ,在人簽署了有人要檢查,如果他們已經贏得了如此建立在「比賽玩具反斗城」
在這一點上,我想這個新的用戶連接到現有的一個新的用戶帳戶Joe創建的contact
(基於電子郵件地址),並允許用戶在需要時更新聯繫人信息。另外一個缺點是,這個用戶可能已經註冊了與不同公司的競賽,所以我現在想要合併到用戶擁有的單個聯繫人對象中。
下面是我在CYPHER(由不同的人,_3和1-6,然後用戶使用匹配的電子郵件,創建_1創建2個觸點)所描述的模型:
CREATE (_1:User { email:"[email protected]", name:"Jack" }),
(_2:Phone { no:"555-5555" }),
(_3:Contact { name:"John", email:"[email protected]" }),
(_4:User { email:"[email protected]",name:"David" }),
(_5:Phone { no:"555-5555" }),
(_6:Contact { name:"John", email:"[email protected]" }),
(_7:User { email:"[email protected]",name:"Fred" }),
_3-[:primary_phone]->_2,
_6-[:primary_phone]->_5,
_4-[:created]->_3,
_7-[:created]->_6
上的任何想法處理這種情況的最佳方法?我試圖弄清楚大衛和弗雷德是如何知道他們創造的contact
實際上是想叫做傑克。
我應該刪除contact
節點並將所有關係移動到新創建的user
節點嗎?我應該只添加一個從user
節點到所有現有的contact
節點的關係嗎?
創建用戶後,所有將來的關係將直接發送給用戶。我只需要支持即使指定的用戶還沒有註冊(或者從不註冊)仍然需要工作的場景。
謝謝!