美文网首页
Neo4j一个数据模型的设计

Neo4j一个数据模型的设计

作者: 微岩 | 来源:发表于2020-03-09 21:33 被阅读0次

如果要是单纯的学习数据库的理论,那么将会是一件非常枯燥的事情,我们接下来将会用一个实际的案例的实现来真正的去学习一个数据库,这样会是一个比较有意思的过程。

其实在计算机的行业,任何的东西都可以表示为一个图,其实这话说的很绝对,但也是绝对正确的,因为在计算机的世界中有很多种数据架构,比如说顺序列表数,最复杂是图。其实等到你有了一定的积累之后,你就喜欢将所有的数据结构都表示为图,那么就会产生一个问题,真理不是很简单的,为什么要用复杂的东西呢?

我只能这么讲,等到你的认知到达了一定层次之后,你就会认为图是很简单的。这个简单怎么解释就是你可以将任何一个东西用图来表示,但是你并不能将任何一个东西用数组表示。如果任何一个东西都可以用图表示,那么图就是简单的,我们起码不用考虑如何去选择。

因为如果是你将图用到了极致以后,你就可以不知道任何其他的任何一个数据结构,就可以只记得图,可以不知道数组,链表等一系列的结构,因为其他一切的结构只是图的一种特殊情况,熟练掌握了图,从某种意义上抛弃掉其他的数据结构。

那么多呢,我们就用图来表示一个基本的案例,这个案例是什么呢?就是我们平时看到的电路。我们把一个电路描述成一张图。这个图里边可能有几个基本的原件,我们必须得为他们起名字,这是第1步。一个最为简单的电路图,他们有什么构成呢?

1.电池

2.电阻

3.电线

4.灯

这可能是一个最为简单的电路图,可能还可以除去电阻,但是我们为了方便研究还是加上电阻,因为现实中的电路图可能是导线本身就带有电阻的,我们分别为这几个原件起一个符号名字。为了方便记忆,我们直接用英文名字来表示。

电池:cell

电阻:resistance

电线:wire

灯:light

这几个软件相互链接,然后就构成了一张电路图,其实每个原件与原件之间,包括电池与电线之间的连接都是一种关系。我们可以把原件与和原件之间的联系定义为一种实体叫做连接点。

连接点:LinkPoint

之所以有连接点这个概念,是为了方便表达这张电路图。好的,我们接下来用以上的概念去详细的描述一张电路图,我们用xml文件的方式去表达

<graph>

<ele>

<cell name = cell_1  linkPt = "1" linkPt = "2" />

<resistance name = r_1  linkPt = "3" linkPt = "4" />

<wire name = wire_1 linkPt = "5" linkPt = "6" />

<wire name = wire_2 linkPt = "7" linkPt = "8" />

<wire name = wire_3 linkPt = "9" linkPt = "10"  />

<light light = ligtht_1 linkPt = "11" linkPt = "12" />

</ele>

<linkPts>

<linkpt name =1>

<linkpt name =2>

<linkpt name =3>

<linkpt name =4>

<linkpt name =5>

<linkpt name =6>

<linkpt name =7>

<linkpt name =8>

<linkpt name =9>

<linkpt name =10>

<linkpt name =11>

<linkpt name =12>

</linkPts>

<links>

<link name = 1 linkstart = "cell_1 " linkend = "1" linkend = "3" />

<link name = 2 linkstart = "" linkend = "" />

<link name = 3 linkstart = "" linkend = "" />

<link name = 4 linkstart = "" linkend = "" />

<link name = 5 linkstart = "" linkend = "" />

</links>

</graph>

文件的格式就是诸如以上的格式,可能会有一些小的纰漏,主要还是看这个文件格式,最后的那个连接关系就是定义点与点之间的联系.当然我们可以自己去定义这个电力图的文件格式,我们接下来用恩恩斯记的方式把定义的参谋文件转换过去.实际上我们为什么要这么做呢?实际上信息科学本质是计算机数据格式的转换.我们不要一步一步去折腾一些的概念,那样反而会浪费我们的时间,我们只要构想一个模型,然后把自己模型中完整的转换到恩伊斯基中,这是我认为目前为止一个非常高效的学习方式,下一篇的文章,我们将进行这一步转化。用代码的方式来表达这个文件内容。

相关文章

  • Neo4j一个数据模型的设计

    如果要是单纯的学习数据库的理论,那么将会是一件非常枯燥的事情,我们接下来将会用一个实际的案例的实现来真正的去学习一...

  • 数据模型设计需要什么技能?

    数据模型的设计是需要精雕细琢的,很多时候把数据模型的设计比喻为建筑设计,虽然,我并不会建筑设计,但是,我觉得每一个...

  • 基于Swagger的RESTful API开发之工具篇

    基于Swagger的RESTful API开发之工具篇 一、数据模型设计(docson) 数据模型设计采用docs...

  • Neo4j 3.0.0 正式发布,支持容器和云部署(2)

    Neo4j 3.0.0 正式发布,这是 Neo4j 3.0 系列的第一个版本。此版本对内部架构进行了全新的设计;提...

  • 如何设计权限系统

    # 权限系统的数据模型 常用的数据模型如图,设计角色的目的是为了方便批量管理用户的权限;设计权限码的目的是避免角色...

  • 图数据库建模准则

    先决条件 您应该了解Neo4j属性图数据模型的基础。 介绍 如果您曾经使用过对象模型或实体关系图,则带标签的属性图...

  • Power Designer—物理数据模型

    1、物理数据模型 PDM 物理数据模型(Physical Data Model)PDM,提供了系统初始设计所需要的...

  • 【DAX学习】1、DAX的一些事儿

    DAX是专门为在数据模型上计算业务公式而设计的。 大家可能已经知道什么是数据模型。 如果没有,我们将从数据模型和关...

  • NoSQL数据模型设计

    NoSQL数据模型设计和关系型数据库模型设计有很大的不同,在浏览MongDB官方文档时发现有不少篇幅介绍数据模型设...

  • 图数据库建模指南

    Neo4j在构建和推荐图技术方面的最佳实践和技巧,将使您充满信心地构建具有丰富数据模型的基于图的解决方案。本节重点...

网友评论

      本文标题:Neo4j一个数据模型的设计

      本文链接:https://www.haomeiwen.com/subject/djpjdhtx.html