0

在我的情况下有两个顶点标签:用户,卖家。DSE图形两个顶点标签的相同顶点部分?

注册用户使用自定义顶点ID创建新的顶点:

g.addV(label,'User', 'id', '123456789', 'name', 'User1').next(); 

当用户登录,如果他注册一个新的业务,那么他成为卖家。 现在我想要相同的顶点ID是卖方标签的一部分,这是不可能的。

如果我使用卖家标签创建新顶点,则存储在用户顶点上的整个图形(hasmobile,hasaddress)将无法与卖家顶点访问。

有没有办法在DSE图中实现这一点?

回答

1

TinkerPop和DSE Graph的语义(以及大多数图形实现 - 使用Neo4j是我能想到的唯一例外)不允许顶点具有多个标签。您可能会认为这是为什么您在SQL数据库的多个表中不存在行的原因。

有多种方法可以解决这个问题。做一个“人”的顶点(而不是“用户”或“卖方”),则:

  1. 推断他们是否从与它们相关的数据的某些方面的在“用户”或“卖方”。也许这是通过“isSeller”或“isUser”属性完成的。然后,你将查询卖家与

    g.V().hasLabel('Person').has('isSeller',true)

  2. 创建,你的“人”的顶点连接到“用户”顶点或“卖方”顶点子类型的系统。然后,你就可以做的东西,如“查找用户,只有当他们是卖家”与

    g.V().hasLabel('User').has('someid','12345'). filter(__.in('isAPerson').out('isASeller'))

相关问题