Aller au contenu principal

RDBMS… simplement du relationnel

Il faut utiliser du relationnel. Les bases relationnelles garantissent un schéma de données ainsi que l'affiliation entre plusieurs items de cette base.

Les plus connues ont d'énormes avantages :

Plusieurs articles sur internet font un retour d'expérience sur des produits web supportant des millions d'utilisateurs en étant restés sur une technologie RDBMS. Nous pensons que le jour où vous serez sur le point de gérer des millions d'utilisateurs, vous aurez une équipe et un budget dimensionnés pour que votre produit tienne la charge. En attendant, si vous avez des pics de charge, augmentez les caractéristiques de votre base de données (CPU, RAM, stockage). Et si votre produit est critique et ne doit jamais avoir de downtime, votre hébergeur propose sûrement de faire des "replicas" de votre base de données afin de former un cluster.

Plus récemment il y a eu une mode d'adoption sur les bases de données NoSQL. C'est des bases de données où la structure des données n'est pas garantie, et où souvent les opérations transactionnelles sont impossibles. Le NoSQL est adapté à des fonctionnalités de niche (même pas à des produits). Si vraiment vous pensez devoir utiliser du NoSQL car une RDBMS ne suffit pas, parlez-en à plusieurs personnes autour de vous en exposant le cas d'utilisation qui selon vous nécessite cette technologie.

Pour aller plus loin dans la réflexion, comme votre base de données (NoSQL) n'est pas capable de garantir un schéma de données, cela veut dire qu'à tout instant il peut y avoir n'importe quoi à l'endroit où vous allez chercher votre donnée. Peut-être que le userB possède les champs prénom + nom + âge alors qu'historiquement userA possède juste âge car il était là bien avant la prise en charge des noms. Vous vous retrouvez du coup à marcher sur des œufs et finalement votre "schéma de base de données" est implicitement caché dans votre propre code métier puisque vous devez faire des vérifications sur la structuration de la donnée.