图形数据库(OrientDB)中基于事件的时间序列数据

时间:2018-08-18 22:06:07

标签: database oop orientdb graph-databases

我正在一个学校项目中评估用户的编码技能。我正在设计的数据库体系结构在逻辑上存在一些不一致之处。

总结问题:如何设计图数据库以将事件作为类的属性而不是新节点来容纳?

详细的问题和背景知识

我正在设计一个数据库,用于跟踪用户代码提交。他的每个提交内容都标有一些元数据,例如python machine learning HTML等。

数据库由三个元素组成:

  1. 用户
  2. 编码标记又称为 CT
  3. 用户的技能 ,这是迄今为止与之关联的所有 CT 的加权集合。

以下是DB的预期功能:

  1. 它应具有 CT 中连接的图形表示。

    • 例如Knowledge graph

    • 他们共享的关系是简单的 Related 关系。图形的边缘将相应定义。

  2. 用户(通过提交)获得的每笔 CT 记录必须与时间戳一起存储。

  3. 用户技能的权重是用户获得的特定 CT 的简单计数。

    • 因此,技能的实体应如下所示: Skill-User relationship
  4. 技能中的每个新条目都应该是用户学习新知识的事件。

在当前体系结构中,我有一个 User 类,该类继承了 Skill 类。并且 Skill 类与 CT 相连。

每次用户获得 CT 时,都会在该 skill 节点与 CT 之间创建一个新优势。因为没有数据类型数组或列表,我只能在其中附加日期。使其效率极低。而不是上面的图,当前看起来像这样: enter image description here

它也打破了OOP,因为我希望时间戳成为 skill 类的属性。其基本原理是技能 CT 收入的集合。获得技能是一件大事,而获得技能将是技能的一项属性,而不是优势。

我还可以为所获得的每种技能创建一个新节点,但我认为它将在图表中引入冗余。

0 个答案:

没有答案