gpt4 book ai didi

neo4j - 如何将边/关系与包含该边信息的节点相关联?

转载 作者:行者123 更新时间:2023-12-04 19:35:12 26 4
gpt4 key购买 nike

我必须将生物相互作用存储在 Neo4j 数据库中。例如,考虑一个场景,我有两种类型的节点,Protein & Experiment和一段关系INTERACTS_WITH .关系存在为 (Protein)-[INTERACTS_WITH]-(Protein) .现在,INTERACTS_WITH还涉及 Experiment因为在该实验中观察到了这种生物相互作用。

我需要关联 INTERACTS_WITHExperiments 的关系.

实现此目的的一种方法是存储所有此类 Experiments 的 ID在 INTERACTS_WITH 的数组类型属性中关系。但这就像在关系数据库中将一个实体的主键存储为另一个实体的外键一样,我想避免这种情况。

另一种方法是创建一个 Interaction每对相互作用基因的节点,然后将其与两个 Proteins 相关联和 Experiments .但是两个 Protein 之间可以进行交互仅节点,因此我将不得不以编程方式限制 Protein 的数量与 Interaction 相关的节点节点。这种方法也不好,因为 INTERACTS_WITH实际上是一种关系,也许将其建模为节点并不是一个好主意。

是否有更好的图形方式来执行此操作?如果不是,以上两种方法哪种更好?

最佳答案

Another way can be to create an Interaction node for each pair of interacting genes and then relate it to the two Proteins and the Experiments.

我相信这是解决您的问题的好方法。

But an interaction is possible between two Protein nodes only, so I will have to programmatically put a constraint on the number of Protein nodes that relate to an Interaction node.

无事可做。程序员总是这样做!例如:对于一对蛋白质节点之间存在多少 INTERACTS_WITH 关系,您有什么保证?可能您在创建时会注意它。

This approach is also not good because INTERACTS_WITH is actually a relationship and perhaps it will be not a good idea to model it as a node.

想一想:如果您的INTERACTS_WITH 关系需要与两个以上的节点相关,也许您正在将节点建模为关系,对吗?

提示:查看图形建模 – 最佳实践和Learning Neo4j(Rik Van Bruggen 着)一书的陷阱和图形数据库一书(Ian Robinson、Jim Webber 和 Emil Eifrem 着)的常见建模陷阱部分。这很有启发性。您可以在 Neo4j 站点下载这两本书 here .

关于neo4j - 如何将边/关系与包含该边信息的节点相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44450852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com