嗨,我是图形数据库建模的新手,并对表达一个人提供的服务的认可表示怀疑。用例如下。 PersonA给予PersonB提供的服务认可。
关键是如果我是赞助的接受者,我想知道谁支持我。我已经提出了几个关于我如何能够做到这一点的情景,但由于我缺乏经验,我怀疑什么是最好的方法。
场景1。
认可直接表示为关系,服务在认可下属于财产所以它看起来像:
PersonA-------ENDORSE{service}--->PersonB
情景2
我为一个名为Service的实体建模。问题是,当我将“ENDORSE”关系用于服务时,我会忘记关于我支持谁的信息。因此,我必须在关系中保留一份关于我支持谁的财产。然后,PersonB将获得AQUIRE对服务的认可,但他不知道谁有实际的支持。所以.....它看起来像这样:
PERSONA----ENDORSE{personB}--->Service------ENDORSMENT{personA}--->PERSONB
这有意义吗?
场景3:
我将第二个关系“ENDORSEMENT”规范化并将该人排除为属性,但我需要查询所有人以找出他们认可的人。
你会如何模仿这种关系?
验证图数据库数据模型的两个重要原则:
所以@Raj
指出了正确的方法,在这种情况下,模型可能如下所示:
我建议你读这个:
第二种方法看起来不错,您不必在关系上添加这些属性。
有可能让A人认可B人进行服务S.唯一的问题是任何服务S都会有多个节点。如果这是不可接受的。
您可以使用Endorse节点E替换第二种方法中的服务节点,并将此E连接到服务节点S.因此,将有四种类型的节点。
编辑:
添加图像以便澄清。根据需要重命名REL1和REL2。 @Stdob为这些关系提出了一些好名声。