我试图理解 noSQL 数据库的概念,更准确地说,是 neo4j 图形数据库背后的概念。我有使用 SQL 数据库(MySQL、MS SQL)的经验,但是管理分层数据的局限性使我扩展了我的知识。但是现在我有一些问题,我找不到他们的答案(也许我不知道要搜索什么)。
想象一下,我们有世界上的国家列表。每个国家每年都有自己的GDP。每个国家的 GDP 由不同的来源计算得出——世界银行、他们的政府、中央情报局等。在这种情况下,组织数据的最佳方式是什么?
想到的最简单的事情是拥有节点(值是虚构的):
China:
GDPByWorldBank2012: 999,
GDPByCIA2011: 994,
GDPByGovernment2012: 1102,
在关系数据库中,我会将数据拆分为三个表:国家、来源和价值,在价值中,我将有 GDP 的价值、年份、国家的 ID 和来源的 ID。
想到的另一件事是创建节点 CIA、世界银行,但节点政府看起来真的很奇怪。尽管如此,这个想法是建立关系(valueIfGDP):
CIA -> valueOfGDP - {year: 2011, value: 994} -> China
World Bank -> valueOfGDP - {year: 2012, value: 999} -> China
这对我来说看起来很奇怪,更重要的是,当我们从一个来源添加所有年份的值时会发生什么?我们会有多重关系还是什么?
如果我的问题太愚蠢,我很抱歉,如果有人解释我或告诉我要读什么书/文章,我会很高兴。
提前致谢。:)