Graph DSE图两个顶点标签的相同顶点部分?

Graph DSE图两个顶点标签的相同顶点部分?,graph,datastax-enterprise,gremlin,datastax-enterprise-graph,Graph,Datastax Enterprise,Gremlin,Datastax Enterprise Graph,在我的例子中,有两个顶点标签:User和Seller 注册用户使用自定义顶点id创建新顶点: g.addV(label,'User', 'id', '123456789', 'name', 'User1').next(); 当用户登录,如果他注册了一个新的业务,那么他就成为卖家。 现在我希望相同的顶点id成为卖方标签的一部分,这是不可实现的 若我用卖方标签创建新的顶点,那个么存储在用户顶点上的整个图(hasmobile,hasaddress)将不能用卖方顶点访问 有没有办法在DSE gra

在我的例子中,有两个顶点标签:User和Seller

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

  g.addV(label,'User', 'id', '123456789', 'name', 'User1').next();
当用户登录,如果他注册了一个新的业务,那么他就成为卖家。 现在我希望相同的顶点id成为卖方标签的一部分,这是不可实现的

若我用卖方标签创建新的顶点,那个么存储在用户顶点上的整个图(hasmobile,hasaddress)将不能用卖方顶点访问


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

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

有多种方法可以解决此问题。制作一个“人”顶点(而不是“用户”或“卖方”),然后:

  • 从与他们相关的数据的某些方面推断他们是“用户”还是“卖家”。也许这是通过“isSeller”或“isUser”属性完成的。然后,您将查询具有

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

  • 创建一个子类型系统,将“个人”顶点连接到“用户”顶点或“卖方”顶点。然后,你就可以用它来做一些事情,比如“只有当用户是卖家时才能找到用户”

    g.V().hasLabel('User')。has('someid','12345')。
    过滤器(uuu.in('isAPerson').out('isASeller'))