[英]How to work with historical data [ArangoDB]
你能解釋一下如何處理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的參數中? 第三種選擇 - 單獨收集“歷史”並將所有內容存儲在那里。
選擇哪個選項?
所以這就是我看到它的方式:
快速而骯臟:將所有內容放入歷史記錄集合中。 這很容易做到,您可以立即在此表的頂部放置GUI。 但是,嘗試在將來對此表進行分析將是混亂的,因為將涉及獲得可用的基於時間的數據的多個連接。 此外,如果你有很多學生,這個表可能會增長很多。
以學生為中心:如果我們有很多學生,將學生對象中的信息作為財產存儲將很有效,並且我們通常會在大多數時間內檢查每個學生的歷史信息。 對聚合的學生團體進行分析以找到模式將會有點復雜,因為在我們分析之前我們需要從個別學生那里獲取數據。
向邊添加日期:最初設置需要花費更多精力,但這是存儲數據的最靈活方式。 另外,您可以添加其他信息,例如傳輸原因。 此設置將允許您對學生轉學模式或學生轉學時間等進行最多分析......
最后,這一切都取決於你正在建設什么,但我傾向於傾向於第三種選擇,除非我有特定的理由不這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.