如何使用历史数据[ArangoDB]

问题描述 投票:0回答:1

你能解释一下如何处理ArangoDB中的历史数据吗?

例如,我有5个集合:

1. School [Type = Documents] - I keep information about schools. I have 2 school:
- BestSchool
- NotveryBestSchool
2. Class [Type = Documents] - I keep information about class. I have 4 class:
- Best A Class
- Best B Class
- NotveryBest A Class
- NotveryBest B Class
3. Students [Type = Documents] - I keep information about Students:
- Timmi
- Lisa
- Kail
- Bart
4. ClassinSchool [Type = Edge] - I keep information about class in school, where "parents" = "school" and "child" = Class:
_From: School/BestSchool _To: Class/Best A Class
_From: School/BestSchool _To: Class/Best B Class
_From: School/NotveryBestSchool: Class/NotveryBest A Class
_From: School/NotveryBestSchool: Class/NotveryBest B Class
And, finally:
5. StudentsinClass [Type = Edge] -  I keep information about Students in Class, where "parents" = "Students" and "Child" = Class
_From: Students/Timmi _To: Class/Best A Class
_From: Students/Lisa _To: Class/Best B Class
_From: Students/Kail: Class/NotveryBest A Class
_From: Students/Bart: Class/NotveryBest B Class

情况就是这样。 2017巴特学得很好。在年底,他从“NotveryBest B Class”转到了新的“NotveryBest A Class”课程。在2018年,他学习得更好,他的父母决定将他转到另一所学校,在那里他可以发展自己的才能。他从“NotveryBestSchool”转到了新学校“BestSchool”和“Best B Class”。

假设:我是否理解正确,为了跟踪巴特在班级和学校之间的运动,我必须添加日期到边缘?这边的主要字段应该是StartDates和EndDates?或许他的运动我需要存储在Bart的参数中?第三种选择 - 单独收集“历史”并将所有内容存储在那里。

选择哪个选项?

arangodb historical-db
1个回答
0
投票

所以这就是我看到它的方式:

  • 快速而肮脏:将所有内容放入历史记录集合中。这很容易做到,您可以立即在此表的顶部放置GUI。但是,尝试在将来对此表进行分析将是混乱的,因为将涉及获得可用的基于时间的数据的多个连接。此外,如果你有很多学生,这个表可能会增长很多。
  • 以学生为中心:如果我们有很多学生,将学生对象中的信息作为财产存储将很有效,并且我们通常会在大多数时间内检查每个学生的历史信息。对聚合的学生团体进行分析以找到模式将会有点复杂,因为在我们分析之前我们需要从个别学生那里获取数据。
  • 向边添加日期:最初设置需要花费更多精力,但这是存储数据的最灵活方式。另外,您可以添加其他信息,例如传输原因。此设置将允许您对学生转学模式或学生转学时间等进行最多分析......

最后,这一切都取决于你正在建设什么,但我倾向于倾向于第三种选择,除非我有特定的理由不这样做。

© www.soinside.com 2019 - 2024. All rights reserved.