Forums Développement Multimédia

Aller au contenu

raisonnement qui conduit à la création d'une grosse table

CODE PHP MySQL

3 réponses à ce sujet

#1 mac97000

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 22 September 2007 - 21:10 PM

Bonjour à tous,
(j'espère ne pas me tromper de liste ...)

Le problème initial est assez simple, quoique si il l'était je n'aurais pas besoin de poster et/ou j'arriverais à poster un message compréhensible or je poste et j'ai du mal à formuler mon message ...

Mes capacités:
je sais créer une table sql simple et inter-agir sur elle depuis php mais il faut que ce soit basique !


Hors à mesure je complique la tâche et la d'un coup je me retrouve face à un mur que je n'arrive pas à contourner ...


Pour résoudre mon problème
Je pense que:
je dois créer une base qui contiendra plusieurs tables (3 !) ces tables seront croisées.

Je n'arrive pas du tout à savoir sur quel pied partir et comment faire, j'en arrive donc à vous exposer la situation qui me pose tant de souci pour savoir si une âme charitable pouvait éclairer mes lanternes sur la direction à prendre.

La situation :
Mr X est éleveur, pour présenter ses bêtes dans des conditions optimales de traçabilité il met leurs fiches en ligne.
Ces fiches comportent plusieurs rubriques:
- identité de l'animal
- identité du père
- identité de la mère
- grand père et mère paternel et maternel ...

Sachant qu'un même animal aura forcément sa propre fiche qu'il pourra être plusieurs fois père ou mère et également plusieurs fois grand père (ou ...)
(parfois mais rarement grand père paternel et grand père maternel, si si ils n'ont pas de complexe)

Le problème:
Pour attaquer la chose du bon pied et ne pas la recommencer 50 fois, il est conseillé de la penser avant de la créer ...
C'est la tout mon problème comme je n'ai pas les notions suffisantes pour penser le croisement de table, et qu'il serait absurde voir inutile de créer une table par animal avec tous les items a saisir un par un ...

Quelqu'un se sentirait il l'âme de perdre son temps avec un ignare de mon espèce pour simplement me mettre sur le bon mode de raisonnement face à ce genre de situation ?

Je ferais les recherches de mon côté pour ce qui est du croisement ... etc ...

Merci d'avance à ceux qui ont pris le temps de me lire et à ceux qui en prendrait à me répondre.

Cordialement Manuel

Ps: la fiche en question est visible à Lien
(attention ceci est une url de travail et ne sera valide qu'un temps limité)


#2 jean.ceugniet

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 391 messages

Posté 23 September 2007 - 19:12 PM

Salut,

A mon avis, tu pourrais structurer ton information avec une seule table, que tu nommerais fiche, ou animal (peu importe, un animal n'ayant qu'une fiche, et une fiche se rapportant à un et un seul animal) :

- id animal
- id pere
- id mere
- autres infos relatives à l'animal

Comme tu as les id du père et de la mère, rien ne t'empêche de remonter aussi loin que tu le souhaites dans la généalogie de l'animal (tant que la fiche de l'ancêtre en question est dans le système, en fait). Un exemple :
CODE
select t1.nom, tp.nom, tm.nom
from fiche t1 inner join fiche tp on t1.idPere = tp.idAnimal
inner join fiche tm on t1.idMere = tm.idAnimal

Hop, tu as récupéré le nom de l'animal, de son père et de sa mère.
CODE
select t1.nom, tp.nom, tm.nom, tgpp.nom, tgpm.nom
from fiche t1 inner join fiche tp on t1.idPere = tp.idAnimal
inner join fiche tm on t1.idMere = tm.idAnimal
inner join fiche tgpp on tp.idPere = tgpp.idAnimal
inner join fiche tgpm on tm.idPere = tgpm.idAnimal

Hop, tu as récupéré le nom de l'animal, de son père, de sa mère. de son grand-père paternel et de son grand-père maternel.

Comme tu le vois, tu fais des jointures entre plusieurs fois la même table, mais en lui donnant à chaque fois un alias correspondant à sa fonction (tp pour père, tm pour mère, tgpp pour grand-père paternel, tgpm pour grand-père maternel).
Ca répond à ta question ?


#3 blaz

    Ceinture Bleue

  • Members
  • PipPipPipPipPip
  • 76 messages

Posté 28 September 2007 - 15:06 PM

"Merise" est ton ami. ca te prendra un peu de temps, mais un peu de theorie ne fait pas de mal smile.gif

#4 mac97000

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 28 September 2007 - 16:31 PM

Merci icon_wink.gif

effectivement sur un site de tutoriel en ligne il y avait une référence à merise.

Que j'avais d'ailleur croisé plusieurs fois mais dont l'utilité ne se faisait pas sentir icon_sad.gif (ou du moins la complexité pour mon niveau de progression)
et finalement avec un cas concret devant les yeux c'est vrai que ça aide bien ...

J'ai fini par trouver la solution mais ne me demander surtout pas de vous l'expliquer j'en suis incapable icon_razz.gif

Merci pour votre participation



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP