Mysql
 sql >> Base de données >  >> RDS >> Mysql

Concevoir une base de données :Quelle est la meilleure approche ?

Il s'agit d'une table étroite typique (basée sur les attributs) par rapport à une table large. Le problème avec l'approche n ° 2 est que vous devrez probablement faire pivoter les données, pour les mettre sous une forme avec laquelle l'utilisateur peut travailler (de retour dans un format d'affichage large). Cela peut être très gourmand en ressources à mesure que le nombre de lignes augmente et que le nombre d'attributs augmente. Il est également difficile de regarder le tableau, en mode tableau brut, et de voir ce qui se passe.

Nous avons eu cette discussion à plusieurs reprises dans notre entreprise. Nous avons quelques tables qui se prêtent très bien à un schéma de type attribut. Nous avons toujours décidé de ne pas le faire en raison de la nécessité de faire pivoter les données et de l'incapacité de visualiser les données et de leur donner un sens (mais c'est le moindre des deux problèmes pour nous - nous ne voulons tout simplement pas faire pivoter des millions de lignes de données).

BTW, je ne stockerais pas l'âge sous forme de nombre. Je conserverais la date de naissance, si vous l'avez. De plus, je ne sais pas à quoi fait référence la «langue maternelle», mais si c'est la langue que parle la mère, je stockerais cela en tant que FK dans une table de langue principale. C'est plus efficace et réduit le problème des mauvaises données à cause d'une langue mal orthographiée.