https://blog.pranshu-raj.me/posts/data-modeling/