This was one of my first ever backend projects, designed to help us learn about (relational) databases, the programming languages SQL as well as SQLAlchemy which allows us to more easily use SQL to communicate and interact with databases, and finally the different types of relationships that can exist with relational databases (1:1, 1:N, N:N etc).
For this project we focused just on making a correct Entity Relationship Diagram (ERD) to help us visualise the structure and organisation of our databases, as well as think through how our tables of data would be related to each other.
Below you can see the final output of the code which can be found in the file "models.py" and was generated by the diagram.png
file by running $ python src/models.py
in the console.
🔥 You can use this FREE tool to practice your diagram for the first time: https://app.quickdatabasediagrams.com/#/d/
-
Get inside the environment
$ pipenv shell
-
Install all dependencies
$ pipenv install
-
Generate the diagram as many times as you need
$ python src/models.py
-
Open the file
diagram.png
to check out your ERD diagram!
Your job is to update the src/models.py
file with the code needed to replicate Instagram's data model.
The project is using the SQLAlchemy Python library to generate the database.
- What tables do you think Instagram might have on its database: E.g: Post, User, etc.?
- What properties should go inside the user? or inside the Post table?
- Please add at least 4 models with all of its properties.
- Refresh the
diagram.png
file at the end by running$ python src/models.py
on the console.