Le 31 août 2023 à 09:30:51 :
Le 30 août 2023 à 13:12:03 :
Le 30 août 2023 à 12:54:06 :
Le 30 août 2023 à 12:34:37 :
La stack MERN me parait plus adaptée :
https://www.mongodb.com/mern-stack
MongoDB n'est pas adapté à 99% des situations, faut arrêter avec la stack MERN, c'est juste du marketing fait par MongoDB.
Dans la vaste majorité des situations, une base de donnée relationnelle (PostgreSQL par exemple) sera bien plus adaptée.
C'est l'inverse enfaite, dans 99% des cas il faut utiliser une base de données flexible puisque que dans 99% des cas il faut changer le schéma de données tous les 2 ans suite aux évolutions des besoins / objectifs, etc.
Bref encore un qui regrette d'avoir appris une techno qui devient obsolète mais c'est le jeu.
ALTER TABLE, ça prend environ 10s
Et en fait il n'y a pas d'un côté les BDD purement relationnelle et de l'autre les BDD non-relationnelle.
Aujourd'hui que se soit Mysql ou Postgresql tu peux stocker des données en json dans les colonnes. Et vu que tu peux rajouter des index sur ces colonnes dans Postgresql c'est très performant. Les benchmarks montrent que sur ce terrain Postgresql est même souvent plus performant que MongoDB.
Autrement dit une BDD comme Postgresql permet de faire tout ce que fais MongoDB et plus encore. Notamment les joins que tu vas terriblement avoir envie de faire dans certaines conditions avec MongoDB si bien qu'ils ont crée des sorte de substituts moins performant pour le faire. Sinon faut faire plusieurs requêtes et ça complexifie la logique dans le code.
Et bon la structure que tu ne mets pas dans ta BDD, tu fais que la reporter dans ton code. Ton programme est toujours structurer d'une manière ou d'une autre par la structure de tes données. C'est juste déplacer la contrainte à un endroit où elle devient moins sûre.
En terme d'obsolescence c'est plutôt le "NoSQL" qui est susceptible d'être concerné car bien que ces BDD soient surement utiles dans certains cas elles sont souvent utilisés là où elles ne devraient pas et quand la hype sera définitivement retombée (elle est déjà moins grande qu'à un moment) on les utilisera naturellement moins pour retrouver les BDD SQL classiques qui ont beaucoup évolués et qui en tout état de cause sont elle-même devenues des BDD NoSQL (Not Only SQL) puisque l'on peut maintenant déstructurer les données et les stocker en JSON dans des colonnes définies comme telle. Ce qui n'était pas le cas 10 ans en arrière.
This.
Mais du coup, nuance! Le NoSQL ne sera pas obsolète vu qu'il s'agit seulement d'une approche différente aux schémas relationnels qui a fait ses preuves dans beaucoup de domaines (big data, modèles évolutifs, généricité, ...). Par contre, les technologies orientées documents telles que MongoDB ont de moins en moins de pertinence dans une stack technologique. Clairement, Postgresql surpasse tout le monde en termes de performances et ce même dans une approche NoSQL orientée documents. À noter qu'il existe plusieurs types d'approches NoSQL (colonnes, graph, clé/valeur, ...) et tout un tas d'outils qui se spécialisent dans l'un ou plusieurs de ces concepts. Le but c'est de déterminer quelle approche est la plus cohérente par rapport aux besoins du projet et seulement ensuite choisir la technologie qui l'appréhende le mieux (interfaces, intégrations, scalabilité, robustesse, sécurité et j'en passe).
Comme tu l'as noté, les approches hybrides existent aussi et ne doivent pas être négligés dans l'étude!
Message édité le 31 août 2023 à 10:44:43 par Impaloupa