firebase - Need help optimizing this noSQL DB Schema -
i'm working on side project create system record , analyze student grade data. i'd input people have bit more experience working document based databases first forray field. built basic data schema feel can optimized more i'm unsure how so. using firebase , it's firebasedb api angularfire familiarity helpful!
database: { "students": { "99": { "fname": "firstname99", "lname": "lastname99", "gradeprogression": { "currentgrade": 4, "enrollmentdate": 1-1-2017, "enrollmentgrade": 2, "repeatedgrades": [4] }, "classidlist": [1, 2], "assessmentgrades": [ { "assessmentid": 1, "score": 100, "datetaken": "2017-2018", "subject": "francais" }, { "assessmentid": 2, "score": 85, "datetaken": "2017-2018", "subject": "francais" } ] }, "idlist":[99] }, "teachers": { "321": { "fname": "teacher1", "lname": "one", "classidlist": [1] }, "idlist":[321] }, "classes": { "1": { "name": "section 1", "grade": 4, "subject": "francais", "schoolyear": 2017-2018, "teacherid": 123, "studentidlist": [99, 106], "assessmentidlist": [1, 2, 3] }, "idlist":[99] }, "assessments": { "1": { "classid": 1, "subject": "added subject document", "name": "participation", "weight": 50, "gradetype": "letter,percent,number", "dategiven": "dateobj-2016-dec", "comment": "extra data may make querying faster?" }, "idlist":[99] } } the logic behind storing assessmentgrades array in student object because whenever accessing students in db accessing grades or other student data create grade reports etc grade of students got held back. feel extracted separate document i'm unsure of how efficient in long run.
another thing i'm unsure of need idlist[] arrays in each document. have there can keep track of unique id's (the id's generated based on number of elements in each document) in each document , verification without accessing entire node.
any advice on schema great help! thanks!
Comments
Post a Comment