我正在使用關係數據庫和圖形數據庫(sqlite和neo4j)的應用程序。我試圖看看我是否無法擺脫sqlite只使用neo4j,而我面臨着冗餘問題。如何處理Neo4j中的高冗餘?
假設我有代表音軌的節點。我想存儲每首曲目的音樂類型。隨着成千上萬的節點,我不認爲重複「南非Psytrance」作爲一個字符串屬性是一個好主意,我敢肯定,創建一個「南非Psytrance」節點和鏈接它到所有有關節點是一個更糟的想法(瓶頸?)。
我說得對,如果我說,使用1)性能佔用太多空間,並使用2)關係是一個糟糕的設計,這方面的問題?
當前代碼使用sqlite數據庫來存儲一組音樂流派,並將它們的索引作爲節點中的屬性(將其轉換爲應用程序層中的字符串表示形式)。
有沒有辦法只使用neo4j並避免瓶頸和冗餘?
同意。 OP的「瓶頸」概念在這裏並不適用。這個概念錯誤適用;通過節點放置實例不會以任何有意義的方式構成「瓶頸」。歸結起來,neo4j使得節點和資源的使用變得簡單和高效,所以這應該是一種前瞻性的方法。 – FrobberOfBits
非常有趣的鏈接,謝謝!關於瓶頸:這是我在[這些幻燈片]的第19頁上閱讀的內容(http://fr.slideshare.net/thobe/building-applications-with-a-graph-database)。我擔心一個節點上的數千個關係會影響性能。我會接受這個答案作爲解決方案,並試一試;) – Pawamoy
有趣的。我在回答中增加了更多想法。 – cybersam