我正在尝试使用OrientDB,我想建模一个非析取的继承。例如: - 有人 - 学生是一个人 - 工人是一个人 - “Alberto”既是学生也是工人。 是否有可能只用我定义的三个类(学生,工人,人)来模拟这种情况,或者我是否应该引入一个新类WorkingStudent,扩展工人和学生,包含“Alberto”?
我认为一个顶点不能是多个类的实例,因为系统不知道在哪个集群中放置它但是我还没有找到我的问题的明确答案。
干杯,
Alberto(在职学生:-))
答案 0 :(得分:1)
顶点可以是多个类的实例。 使用此命令
create class WorkingStudent extends Working,Student
亲切的问候。
答案 1 :(得分:1)
我想你可能试图以错误的方式解决这个问题。例如,Alberto可能总是一个人。但是当Alberto毕业时,他将不再是学生。事实上,他也可能失去工作而不再是工人。将他从一个班级转到另一个班级是一个相当大的问题。
我会创建单独的,较小的Worker和Student节点。然后从Person到Worker或Person to Student创建边。边缘可以命名为“Is A”。
现在,添加新类别非常容易,例如“Parent”或“Spouse”,而不必担心更改类继承。
Graph数据库的一个奇妙优势......