Open huonggiangbui opened 2 years ago
Hi! I am just curious about the new database structure. Can you share an example of how the new DB will be structured?
Thanks in advance 😄
Hi, I'd like to tackle this issue. I would suggest to use a relational database that has separate tables, users, courses and assessments. Each of these tables are related using a link between common fields in the tables.
Hi, I'd like to tackle this issue. I would suggest to use a relational database that has separate tables, users, courses and assessments. Each of these tables are related using a link between common fields in the tables.
thank you! We will have a discussion on Sunday, please follow the discord channel for more details (and it would be great if you can join)!
I believe we currently use Mongo DB which is a non-relational DB. However, we can still model the database as follows:
One collection for courses that contains common information like course codes, availability, semesters offered in etc. Each course in this collection will have a seperate ID (course code could serve as an ID because I guess its unique too).
Now each user can access the pool of common courses using an ID and the specific information like their grades/assignments etc can be stored in their private document. From a privacy point of view, this is also preferable because we can restrict access to the student specific data that stores sensitive personal information.
At the same time we can be a bit loose about the public pool of courses as it has no sensitive information.
This is very similar to a relational database, but follows the non-relational document structure of Mongo DB
Is your feature request related to a problem? Please describe. Right now, we are structuring the database in the flow of user > course > assessment. This might not be an ideal design for the database (e.g. if we want to query a course, you need to go over each of user data record and find it)
Describe the solution you'd like We probably want to create design a new database system, where we can effectively query (i.e. reduce number of queries) the existing courses from the database. One possible way to do this is to have separate documents/tables for users, courses, and assessments. But you want to take a look at data modelling.
Resources
Additional context Example of how the database is structured now: