【发布时间】:2011-02-20 01:19:39
【问题描述】:
我想使用一个使用 php 的图形数据库。你能指出一些关于从哪里开始的资源吗?那里有任何示例代码/教程吗?或者是否有任何其他方法可以在完全随机/抽象的情况下存储彼此相关的数据?
-
所需关系的非常抽象的例子:约翰与玛丽有关,都与学校有关,约翰很高,玛丽很矮,约翰有蓝眼睛,玛丽有绿眼睛,我想要查询哪些人与“矮”有关有绿眼睛并上学的人'->回答约翰
-
另一个例子:
TrackA -> ArtistA
-> ArtistB
-> AlbumA -----> [ label ]
-> AlbumB -----> [ A ]
-> TrackA:Remix
-> Genre:House
-> [ Album ] -----> [ label ]
TrackB -> [ C ] [ B ]
查询示例:
TrackB 更接近哪种类型?答案:House——因为和Album C有关,又和TrackA有关,又和Genre:House有关
获取 Label A 的所有 Genre:House 相关专辑:结果:AlbumA、AlbumB - 因为它们都有与 Genre:House 相关的 TrackA
-
这在 MySQL 中是可能的,但它需要为每个项目设置一组固定的属性/列和一个复杂的非灵活查询,相反,我需要每个属性本身就是一个项目,而不是“属于”某物,与某事“相关”。
【问题讨论】:
-
“属于某物”和“与某物有关”(除了使用不同的词)有什么区别?
-
@Joel L:我所说的归属是指一个项目所具有的属性,相关是项目如何相互关联,而不是一个是另一个的属性。就像曲目属于艺术家一样,但同一个曲目可以有多个艺术家。使用父/子方法,您需要将相同的子(轨道)复制到每个父(艺术家),并且轨道可以在多个专辑和多个标签中。如果不使用图表,您将如何描述这样的关系?
标签: php database database-design nosql graph-databases