如何为一个人提供的服务进行数据模型背书,图数据建模
How to data model endorsement for a service provided by a person, Graph Data modeling
你好,我是图形数据库建模的新手,对表达对个人提供的服务的认可有一些疑问。用例如下。 PersonA 为 PersonB 提供的服务背书。
关键是,如果我是背书的接受者,我想知道谁背书了我。我已经想出了几种可能的方案,但由于我缺乏经验,我怀疑什么是最好的方法。
场景一
背书直接表达为一种关系,服务属于背书下的 属性 所以它看起来像:
PersonA-------ENDORSE{service}--->PersonB
场景二
我为一个名为 Service 的实体建模。问题是,当我将关系 "ENDORSE" 用于服务时,我会丢失有关我支持谁的信息。所以我必须在我支持谁的关系中保持 属性。然后 PersonB 将获得对服务的认可,但他不知道实际上是谁给出了认可。所以......它看起来像这样:
PERSONA----ENDORSE{personB}--->Service------ENDORSMENT{personA}--->PERSONB
这有意义吗?
场景三:
我规范化第二个关系 "ENDORSMENT" 并将 personA 排除为 属性 ,但我需要查询所有 Person 以找出他们认可了谁。
你会如何模拟这种关系?
第二种方法看起来不错,您不必在关系上添加这些属性。
有可能获得为服务 S 背书人 B 的人 A。
唯一的问题是任何服务 S 都会有多个节点。如果这是不可接受的。
您可以将第二种方式中的Service节点替换为Endorse节点E,并将此E连接到服务节点S。
所以会有四种类型的节点。
编辑:
添加图片进行说明。
根据需要重命名 REL1 和 REL2。
@Stdob 为这些关系建议了一些好听的名字。
验证图形数据库数据模型的两个重要原则:
- 如果一个实体或事实可以多次使用,那么它应该被存储
作为节点
- 如果两个节点的关系需要存储节点
identifiers,那么这个关系必须转化为一个节点
所以 @Raj
指出了正确的方向,在这种情况下模型可能如下所示:
我推荐你阅读这篇文章:
你好,我是图形数据库建模的新手,对表达对个人提供的服务的认可有一些疑问。用例如下。 PersonA 为 PersonB 提供的服务背书。
关键是,如果我是背书的接受者,我想知道谁背书了我。我已经想出了几种可能的方案,但由于我缺乏经验,我怀疑什么是最好的方法。
场景一
背书直接表达为一种关系,服务属于背书下的 属性 所以它看起来像:
PersonA-------ENDORSE{service}--->PersonB
场景二
我为一个名为 Service 的实体建模。问题是,当我将关系 "ENDORSE" 用于服务时,我会丢失有关我支持谁的信息。所以我必须在我支持谁的关系中保持 属性。然后 PersonB 将获得对服务的认可,但他不知道实际上是谁给出了认可。所以......它看起来像这样:
PERSONA----ENDORSE{personB}--->Service------ENDORSMENT{personA}--->PERSONB
这有意义吗?
场景三:
我规范化第二个关系 "ENDORSMENT" 并将 personA 排除为 属性 ,但我需要查询所有 Person 以找出他们认可了谁。
你会如何模拟这种关系?
第二种方法看起来不错,您不必在关系上添加这些属性。
有可能获得为服务 S 背书人 B 的人 A。 唯一的问题是任何服务 S 都会有多个节点。如果这是不可接受的。
您可以将第二种方式中的Service节点替换为Endorse节点E,并将此E连接到服务节点S。 所以会有四种类型的节点。
编辑:
添加图片进行说明。
根据需要重命名 REL1 和 REL2。
@Stdob 为这些关系建议了一些好听的名字。
验证图形数据库数据模型的两个重要原则:
- 如果一个实体或事实可以多次使用,那么它应该被存储 作为节点
- 如果两个节点的关系需要存储节点 identifiers,那么这个关系必须转化为一个节点
所以 @Raj
指出了正确的方向,在这种情况下模型可能如下所示:
我推荐你阅读这篇文章: