2011-12-27 1 views
1

Cette question est liée aux performances. Je travaille sur un projet où j'ai beaucoup de tables avec très peu de colonnes mais plusieurs lignes pour un objet.Plusieurs enregistrements avec moins d'informations ou un enregistrement avec beaucoup d'informations dans MySQL

Par exemple une table "person_data" où j'ai seulement les colonnes "personID", "field" et "value". Pour une personne j'ai 20 enregistrements comme someID, "name", "someName"; someID, "surname", "someSurName", etc ...

Lors de la lecture ou de l'écriture de données, nous écrivons ou lisons TOUTE les valeurs pour 1 personne. Du point de vue de la performance serait-il préférable d'avoir seulement 20 colonnes dans la table "nom", "nom de famille", etc ...

Merci pour votre avis.

+1

http://stackoverflow.com/questions/1125004/quelles-plusieurs-plusieurs-multiples-mysql-tables-or-une-grande-table Question similaire. Lisez les réponses et vous devriez avoir l'idée – Darvex

+0

Vous utilisez EAV: http://en.wikipedia.org/wiki/Entity-attribute-value_model –

+1

Cochez cette question: http://stackoverflow.com/questions/4066463/should -i-use-eav-model –

Répondre

0

Si le nombre d'attributs d'un objet ne s'affiche pas fréquemment, vous devez stocker ces attributs dans la même table. La sélection des données d'une table est plus rapide que celle de plusieurs tables en même temps à l'aide de jointures et de clés étrangères.

Questions connexes