不同VERTEX 的VID是否也不能重复?

  • nebula 版本:2.0alpah
  • 部署方式:单机
  • 问题的具体描述

因为插入edge语句只和vid相关

INSERT EDGE follow(degree) VALUES 100 -> 101:(95);

这里并没有指定到底是两个VERTEX 的关系。

如果有2个VERTEX , 分别是学生student,老师 teacher

INSERT VERTEX student(sno, name,sex,birthday ) VALUES "001":("001", "张三",1,"1990-01-02");
INSERT VERTEX student(sno, name,sex,birthday ) VALUES "002":("002", "李四",1,"1990-03-02");

INSERT VERTEX teacher(tid, tname , age ) VALUES "001":("001", "张老师", 28);
INSERT VERTEX teacher(tid, tname , age ) VALUES "002":("002", "王老师", 35);

INSERT EDGE follow(degree) VALUES "001" -> "002":(98);

就分不清了到底是表达同学关系,还是师生关系 ?

是否是这样?必须要不同tag中vid也不能重复

edge表示的是vertex间的关系, 不是tag间的关系。 insert vertex是把某个tag属性关联到某个vertex上。你例子实际上插入了两个vertex, “001”和“002”, 每个vertex都关联了两个tag, student和teacher。 这和你设计的意图相符合吗?

你好,我这里定义了2个tag 分别是
CREATE TAG student(sno string, name string, sex int, birthday string);//学生
CREATE TAG teacher(tid string, tname string, age int); //教师
我的业务需求是展现同学关系和师生关系。
我如果使用语句
INSERT EDGE follow(degree) VALUES “001” → “002”:(98);
表达同学关系。那么我在表达师生关系时候也会出现

INSERT EDGE follow(degree) VALUES “001” → “002”:(98); 这样的语句。
所以,这样不就是冲突了吗

同学关系和师生关系听起来像是两种边呀? 为啥你都用follow来表示?

哦。那这一句话我就明白了。edge是根据业务设定的。不同的关系用不同的edge,多谢多谢

:blush:

刚刚,我又使用了Delete这个命令。
Delete vertex “001”,

这样student,teacher 中的 001都会被删除掉了。

是的。 因为student和teacher是tag, 是附属于vertex上的, 你把vertex delete掉了, 那它上面的所有tag当然也就不存在了