I need to model Student and their Marks obtained in specific test. The marks are obtained in 3 different subjects and based on their total marks student get Rank.
Will the graph model with following structure is correct ?
Node
Student
Mark
Rank
Relations
HAS_MARK with properties [TestName, Subject ]
RECEIVED_RANK with properties [TestName]
With this model , one query by keeping filter on TestName and/or Subject
- get marks for test and/or subject for individual or all students
- get average marks in test and/or subject for all students etc
There are couple of ways you could do this, I would create these 3 nodes instead:
- student
- test
- subject
Then I would add a TOOK relationship between students and tests, with properties for when they took the test and the mark received (I would actually create 2 relationships, one for when the student took the test, and another for the mark received, but you get the idea). Simple example arrows.app file here:
The rank could be calculated at query time or after every test is taken to set a rank property on the student node. Comments to this other thread discuss ways of implementing scoring that might be insightful.