Aller au contenu

Structure d'une base mysql ?


genmin

Sujets conseillés

Bonjour, voilà je suis sur une base de gestion de bien immobilier. Pour le moment j'ai 4 tables identique qui me permettent de séparer :

table1 -> les biens proposé à la vente

table2 -> les biens en attente (complément d'info etc)

table3 -> les biens que nous avons vendu

table4 -> les biens vendu pas des confrères

Il est vrai que 90% des requetes ce font sur la table 1, mais lorsque l'on recherche un bien, il faut regarder dans les 4 tables?

pour info voici le nombre d'enregistrement de chaque table :

table1 -> 879

table2 -> 133

table3 -> 492

table4 -> 1858

les tables 3 et 4 sont bien entendu amenée à grossir très rapidement contrairement au table 1 et 2 qui devrait rester à peut près à la meme taille.

voici enfin ma question !!

Est ce que je me complique pas la vie pour rien en gardant mes 4 tables, et ne devrais je pas tout mettre dans la meme avec un champ suplémentaire qui m'informe de leur statut.

Autrement dis, il vaut mieux une grosse table avec une seul requete par page php, ou une multitude de petite tables avec une multitude de requete dans la page php.

Tout ca dans un souci de temps de calcul et d'acces au donnée sur le serveur biensur.

Merci pour vos lumière.

Lien vers le commentaire
Partager sur d’autres sites

Dans la mesure où il n'ya pas redondance, cela peut fonctionner avec 4 tables mais je préfère n'avoir qu'une table avec un statut.

Je m'avance un peu, mais un inner join consommera plus qu'un select unique.

A creuser :)

Lien vers le commentaire
Partager sur d’autres sites

Salut Genmin,

Dans le cas où la seule chose qui change est le statut, il vaut mieux une seule table avec un champ "statut" supplémentaire.

Au moins lors d'une recherche, tu n'auras qu'une seule requête plutôt que d'en avoir 4 sur des tables distinctes.

Ce champ peut être une simple valeur numérique et doit être indéxé. Tu gagneras beaucoup de temps ;)

Cette valeur numérique te permet éventuellement d'y stocker l'id du vendeur si tu as une table séparée avec les vendeurs et leurs coordonnées.

Dan

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Je suis entièrement d'accord avec Portekoi et j'ajouterais qu'il y a aussi un paramètre à prendre en compte : la redondance.

A quoi ca sert d'avoir x fois le même enregistrement dans x tables ? Sinon pour se compliquer la vie.

Pour finir, au risque de passer pour un emmerdeur, je conseil très fortement à tous ceux qui veulent faire de la programmation "propre" de commencer par apprendre la théorie, à savoir : l'analyse et l'algorithmie. Ca parait con comme ca mais c'est le plus important ! Cela permet de ne pas partir sur un projet "à l'arrache" et de se rendre compte à un moment que tout est à recommencer.

Bon allez... J'arrète le café :)

Lien vers le commentaire
Partager sur d’autres sites

Tu as la top site list du Hub, qui contient un certain nombre de liens intéressants.

Pour 'apprendre', il y aura toujours le site 'commentcamarche.net',

Sinon tu peux te tourner vers la méthodologie 'merise', qui justement permet de modéliser une base de données, et d'éviter ce genre de structures, voire 'UML'.

Le principe étant de dire (entre autres) :

- ' Une info ne doit être stockée qu'une seule fois dans la base. Il ne peut y avoir de redondance d'informations'.

( ! sauf cas particuliers, mais je te laisse les découvrir ;) )

Ah ! Et il y a quelques articles pour 'bien commencer', en base de données, dans les publications du Hub ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...