/awesome-database-design

:zap: A collection of resources and tutorials to design a better database schema.

Awesome Database Design Awesome

A comprehensive guide to database design that includes resources, tutorials and tools to help you create an efficient database schema.

Introduction

Being a self-taught programmer can be both challenging and rewarding. But when it comes to database design, finding the right resources and information can be difficult and time-consuming. This is why I've created this list - to help others who may be facing similar difficulties.

Over the past few months, I've accumulated a vast collection of bookmarks, posts, courses, and links related to database design and entity modeling. This list is my attempt to organize those resources and make them accessible to others who are interested in learning database design.

How to use this list

This list is organized into categories for easy navigation. If you're looking for a specific topic, you can use the search function (Ctrl + F or Cmd + F on macOS) to quickly find what you're looking for.

Topics:

Naming Convention

Normalization

Entity-relationship modeling

Conceptual database design

Hierarchical data modeling

Logical database design

Views

Database Indexes

Inheritance in database design

Multi-language database design

Subtype/supertype design pattern

Database Sharding

Database Partition

SQL

Database Lessons

Common Database Questions and Suggestions

Cheatsheets

Database Design Tools

Star History

Star History Chart

Please contribute

Are you passionate about database design? 🤔 Do you have some great resources or topics to share? We'd love to hear from you! 💡 Please feel free to contribute to the repository and don't forget to raise a PR or suggest any improvements. 🙌 Thank you for your support!

Follow these steps to contribute

  1. Clone the repository to your local machine using the git clone command.
  2. Make changes to the README.md file by editing it in your preferred text editor. You can add new links or suggest modifications to existing ones.
  3. Commit your changes using the git commit command. Make sure to include a clear and concise commit message that describes the changes you made.
  4. Push your changes to the repository using the git push command.
  5. Create a pull request by navigating to the original repository and clicking the "New pull request" button. GitHub will guide you through the process of creating a pull request.
  6. Wait for the repository owner to review and merge your changes. Be sure to respond to any feedback or comments they provide.
  7. If your changes are accepted, you can continue contributing to the repository by repeating the above steps for additional changes.