我是neo4j的新手,我需要使用neo4j進行某種輪詢web應用程序。如何在neo4j中實現數據模型。用戶,問題和答案
用戶用幾個選項詢問問題以獲得答案。用戶邀請其他用戶回答此問題。用戶通過選擇一個或多個選項來回答問題。應該可以查詢投票結果。
我有3種類型的節點:User
,Question
,Option
。
首先我在想這個模型。
(User)-[:ASKS]->(Question)
(Question)-[:INVITES]->(User)
(Question)-[:HAS]->(Option)
(User)-[:CHOOSES]->(Option)
但在這種情況下,如果我需要把所有的問題,當前的用戶說,我需要從User
去所有他選擇了(所有問題)Options
。然後弄清楚,這個用戶回答哪個問題。
然後我想連接User
到Question
,而不是連接User
到Answer
。新的關係有一個屬性,用於存儲用戶選擇回答此問題的Option
ID。
(User)-[:ASKS]->(Question)
(Question)-[:INVITES]->(User)
(Question)-[:HAS]->(Option)
(User)-[:ANSWERS {optionIds: [...]}]->(Question)
但在這裏,它是很難對投票結果的查詢。 (5個用戶選擇了option1,2個用戶選擇了option2,...)。 而且好像將一個節點的id存儲在另一個節點/關係中不是在neo4j中執行任何操作的正確方法。
現在,我想這樣做:
(User)-[:ASKS]->(Question)
(Question)-[:INVITES]->(User)
(Question)-[:HAS]->(Option)
(User)-[:CHOOSES]->(Option)
(User)-[:ANSWERS]->(Question)
你認爲哪種方式更好?預先感謝您的幫助。