par
golin » 28 févr. 2007, 17:25
Meci pour vos reponses, je vais essaye d'etre un poil plus precis

Oui serialiser les donnees dans un champs n'est meme pas envisageable, des recherches doivent pouvoir prendre en compte tous les champs.
En fait, chaque enregistrement appartient a une famille definie par une 20aine de champs.
En gros l'enregistrement 1, appartenant a la famille A, utilisera les 20 champs communs a tous les records plus une 20aine d'autres pour sa famille.
Le record 2 de la famille B, utilisera aussi les 20 memes champs communs mais aussi 20 autres specifiques a la famille B, donc different de ceux de la famille A.
Pour resumer, il y aura 6 familles avec chacune 20 champs + 20 champs commun. Donc pour un enregistrement on utilisera 40 colonnes sur 140.
Donc soit je fais une table avec les 20 champs communs et 6 autres table, une pour chaque famille, ce qui me semble esthetique et convenir a la situation ; Soit je fait une seule et unique table avec 140 colonnes.
La deuxieme solution est un peu plus simple a gerer, plus performante mais beaucoup moins maintenable. Si demain il faut ajouter 3 nouvelles familles, ca fait tout de suite une table avec 200 colonnes.
Je n'ai pas d'objection a cette idee, mais ce n'est pas tres jolie et ca oblige a creer des vues pour parcourir la table (afficher 200 col avec le client mysql en ligne de commande n'est meme pas envisagable, et je suis trop faineant pour specifier a chaque fois les champs que je veux :p)
Bref en gros je voudrais savoir si vous voyez d'autres arguments qui pourra appuyer mon souhait d'utiliser plusieurs tables.
N'y a t'il vraiment aucune difference entre travailler sur une table avec 30 col et sur une table avec 200 col niveau performance ?
Si vous avez des retour d'experience ca peut m'interesser
Merci
Hugues