UNE des raisons de normaliser une base de données est de réduire la redondance (vos "blocs répétables")
UNE AUTRE raison est de permettre l'interrogation "vers l'arrière". Si vous vouliez savoir quelle vidéo a été tournée au "15 Pike Place", votre solution JSON échouera (vous devrez recourir à la lecture séquentielle, décodant JSON qui va à l'encontre de l'objectif d'un SGBDR)
Bonnes règles de base :
- Données structurées :mises dans des tableaux et des colonnes
- Données susceptibles de faire partie des conditions de requête - placées dans des tableaux et des colonnes
- Des données non structurées sur lesquelles vous savez que vous n'interrogerez jamais - placées dans des champs BLOB, XML ou JSON
En cas de doute, utilisez des tableaux et des colonnes . Vous devrez peut-être passer un peu plus de temps au début, mais vous ne le regretterez jamais. Les gens ont regretté leur choix pour les champs JSON (ou XML, d'ailleurs) encore et encore et encore. Ai-je mentionné "encore" ?