- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我接触过关系型 mySQL 之前,我并不认为自己也是该领域的专家。我发现了以下问题 1 2关于数据库设计,但我想知道您对我的问题的看法。我想创建我自己的样本数据集,我可以在上面测试我的 Cypher 查询。我想到的一个领域是类似于面向音乐听众的社交网络的数据集,例如 LastFM。
所以我的第一个想法是创建两种类型的节点 Bands 和 Persons:
(nir:Band { name: "Nirvana", town: "Seatle", country: "USA", genere: "Grunge" })
(dgr:Person { name: "Dave Grohl", born: 1969, instrument: "drums" })
作为一个人,我还为我的社交网络创建了用户(不是乐队成员)。我有以下几种关系:
(dgr)-[:IS_MEMBER_OF {from: 1987, to: 1994} ]->(nir)
(user1)-[:IS_FRIEND_OF]->(user6)
(user1)-[:LIKES]->(nir)
然后我意识到这个概念至少有三个限制,我现在可以看到:
为了解决前两个问题,我首先想到了一些类似于数组的数据类型(从 Python 等中得知)。在这个数组中可以存储多个元素(多个流派或多个城镇和国家),但我没有在 neo4j 中找到任何关于数组的信息。然后我意识到所有这些限制都可以被 neo4j 优雅地自然地解决,唯一需要做的就是对节点和关系进行轻微的修改:
(nir:Band { name: "Nirvana" })
(foo:Band { name: "Foo Fighters" })
(dgr:Person { name: "Dave Grohl", born: 1969 })
(grn:Genere { name: "Grunge" })
(rck:Genere { name: "Rock" })
(dgr)-[:IS_MEMBER_OF {from: 1987, to: 1994, instrument:"drums"} ]->(nir)
(dgr)-[:IS_MEMBER_OF {from: 1994, to: 1998, instrument:"drums"} ]->(foo)
(dgr)-[:IS_MEMBER_OF {from: 1998, to: 2014, instrument:"guitar"} ]->(foo)
(stl:Town { name: "Seatle" })
(por:Town { name: "Portland" })
(usa:Country { name: "USA" })
(stl)->[:IS_IN]->(usa)
(por)->[:IS_IN]->(usa)
(nir)->[:IS_FROM]->(stl)
(nir)->[:IS_FROM]->(por)
(nir)->[:PLAYS]->(grn)
(nir)->[:PLAYS]->(rck)
(user1)-[:IS_FRIEND_OF]->(user6)
(user1)-[:LIKES]->(nir)
最后是我的问题:
编辑回复@Michael Hunger
“你应该问问自己,你想用它解决哪些查询/用例”如果 instrument
是 IS_MEMBER_OF
关系的成员,或者如果 instrument
是 Person
的成员,我仍然可以(也许 Cypher 查询会看起来更笨拙,我不知道)以获得所需的数据,例如向我展示在来自美国的乐队中演奏的所有鼓手。当然,我受到上述限制的限制(人只能在一种乐器上演奏等)。我的问题是,如果我知道这些限制(第一个提议的模式)并且我对它们感到满意,那么创建另一个(第二个提议的模式)数据库模型是否有意义。与第一个方案相比,第二个方案有什么好处吗?我现在可以看到的是,与第一个模式相比,第二个模式扩展得很好,还有其他东西吗,例如性能?
“对于某些特定的用例,将乐队成员建模为节点可能会很有趣,然后您可以将它们连接到乐器节点、时间树(年->月->成员)或将它们放入一个顺序(与下一个关系)。”你能发布一些简单的 CYPHER 例子吗?这对我来说很难想象。
“图形数据库预先实现关系,并将它们与它们连接的节点一起存储”这是否意味着从性能角度来看,以下两个基本相同?因为这两种关系都连接节点。
CREATE (dgr:Person {name:"Dave Grohl", instrument: "drums"})-[:IS_MEMBER_OF]->(nir:Band {name:'Nirvana'})
CREATE (dgr:Person {name:"Dave Grohl"})-[:IS_MEMBER_OF {instrument: "drums"} ]->(nir:Band {name:'Nirvana'})
最佳答案
你的第二个模型看起来真的很棒。你应该问问自己,你想用它解决哪些查询/用例,如果它支持它们,你就很好。
对于某些特定的用例,将乐队成员建模为节点可能会很有趣,然后您可以将它们连接到仪器节点、时间树(年->月->成员)或将它们放入订单中(与下一个关系)。
关于您关于连接表的问题。
在图形数据库中不需要这些,关系起作用(但不是连接表的实现)。图形数据库预先具体化关系,并将它们与它们连接的节点一起存储。因此,沿该连接进行查询并不昂贵,因为它只是跟踪数据库中的现有记录。
因此您也不需要技术上的主键和外键。唯一有意义的是索引您用来查找实体的属性,例如:Person(name), :Band(name),流派、国家和城镇相同(如果你想按名字搜索)。
一个可以帮助您入门的好工具是 http://graphgen.neoxygen.io示例图生成器。
如果您有兴趣,我们还有一些关于音乐领域的数据集和文章:http://www.neo4j.org/misc/music (musicbrainz 数据集已过时,必须更新)。
关于mysql - neo4j 示例 - 图与关系概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26391538/
我想填充 3D 等高线图 (contour3(X,Y,Z)),就像 2D 等高线填充图 (contourf(X,Y,Z))。但我无法弄清楚如何实现这一目标。 contour3 和 surf 的组合不是
我有一个 c3.js 折线图,表示 2 个值的演变。我需要折线图的工具提示是饼图(工具提示 = 另一个 c3.js 图形)。 这是我成功的: http://jsfiddle.net/owhxgaqm/
我有具有结构的 Pandas 数据框: A B 0 1 1 1 2 1 2 3 4 3 3 7 4 6 8 如何生成 Seaborn Violin 图,每列作为其自己的单独
我正在使用 D3DXSPRITE 方法将我的 map 图 block 绘制到屏幕上,我刚刚添加了一个缩放功能,当您按住向上箭头时会放大,但注意到您现在可以看到图 block 之间的间隙,这是一些屏幕截
1、系统环境如下图: 2、为该系统添加一块新的虚拟硬盘,添加后需重启虚拟机,否则系统不识别;如下图,/dev/sdc 是新添加的硬盘; 3、fdisk /dev/sdc为新硬盘创建分区:
1、nagios简介 nagios是一款开源的电脑系统和网络监视工具,能有效监控windows、linux和unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发
越来越多人开始习惯用手机上网,浏览网页、查看邮件···移动化已经成为互联网发展必然趋势,包括facebook在内的很多互联网公司都将移动广告作为下一个淘金地
1.图片处理 1.圆角图片 复制代码 代码如下: /** * 转换成圆角 * &n
Microsoft SQL Server Management Studio是SQL SERVER的客户端工具,相信大家都知道。我不知道大伙使用导入数据的情况怎么样,反正我最近是遇到过。主要是因为没
debian6系统: 首先先安装mysql吧: 打开终端(root)用户登入 apt-get purge mysql-server-5.5 安装完成后: 默认情况下Mysql只允许本地登录
fedora16英文环境下支持中文输入法的方法 fedora16英文环境下支持FCITX的中文输入法: $ im-chooser 就会出现选择界面,选择第二个就行了。
Net预编译命令 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe -? 显示说明 我们需要选择的命令为&n
有的时候电脑出现一些故障有的时候通过将其修改bios设置的方法来解决故障,那么在bios上设置能不能将电脑恢复出厂设置呢?其实也是可以的。方法也很简单的,只要会进入电脑的bios懂的上面英文的意思就
笔者曾介绍过Deepin 将对龙芯进行全面支持,打造最优美龙芯电脑桌面。现在Deepin团队移植工作取得了突破性的成果,Deepin桌面已经在龙芯3A和龙芯3B电脑上成功运行起来了。 以下为龙芯3
在安装一些软件之后,我们的电脑总是会发生一点小变化,不是桌面上多了几个网址图标,就是IE浏览器的默认主页被篡改成乱七八糟的网址。最可气的是,在IE设置中将默认主页改回来后,下次启动Win7后又变了回
“注册表编辑器怎么打开”虽说不是很难的问题,但是对于对电脑常识不是很擅长的网民来说,当电脑出现问题或需要更改设置时,着实还是件头疼的问题。因为需要打开注册表进行操作解决。那么如何打开注册表编辑器呢?
这篇文章重点介绍10个重要的WordPress安全插件和技巧,用来保护WordPress网站或者博客。 1. WP Security 人工帮助你修复被黑客入侵的网站,只要按照他们网站上的联系电话
其实运用object和javascript调用外部文件,也能实现不同栏目调用不同友情链接,即相当于调用不同栏目友情链接文件, {dede:field.typeid/}来获取当前栏目的ID。
我有一个复值矩阵。 如果我发出命令: plot(myMatrix) 然后它在图形设备上显示一种散点图,X 轴标记为 Re(myMatrix),Y 轴标记为 Im(myMatrix)。这显示了我正在寻找
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我是一名优秀的程序员,十分优秀!