Once 2 developers got together. And they needed to implement a new HTTP API for the play store. It came to choosing a database that should be used in the project:
- Listen, how do we choose? Use a relational database or NoSQL. In particular, maybe you need a document-oriented one?
- First you need to understand what data will be in our subject area!
- Yes, here I have already sketched the scheme:
To build a catalog, we need all the data ... Each game has its own catalog, we will distinguish it by game_id.
- , , MySQL . !
. , ORM . .
, … , API ! , , ( ) .
() - ORM .
. ? , , ( ).
... ! ( JSON), .
JSON 1 MySQL (+ , ):
95 3 , rps .
, …
?
The “we've always done this” approach is safer in most cases based on previous experience, but may not be effective for new tasks.
It is more important to understand which concepts will help achieve the required quality, and then choose technologies that implement them, rather than just choose between technologies
Stereotypical thinking like “MongoDB is for unstructured, something relational for structured” or “Well Redis is unsafe, so we won't store anything there”, etc. rather harmful. It often depends on the implementation of the application and the configuration of the services.