Structure de mes tables

Eléphant du PHP | 148 Messages

25 oct. 2006, 17:29

Bonjour tout le monde,

voici mon problème, j'ai beau retourner le problème dans tous les sens, je n'arrive pas à structurer ma ou mes tables. Je m'explique :

Je veux créer une ou plusieurs tables pour renseigner des listes déroulantes. En gros, l'utilisateur choisit une école. Dans cette école il y a 1 ou plusieurs activités. Ces activités sont disponibles certains jours, à certains horaires auquels correspondent un niveau.

En gras ce sont les champs dont j'ai besoin.

Comment structurer ma ou mes tables pour cela ?

Merci d'avance d'éclairer ma lanterne...[/b]
Et hop !

Eléphant du PHP | 148 Messages

25 oct. 2006, 17:36

Oups, je me suis mal exprimé, ça commence par le choix d'une activité, qui conduit au choix d'une ecole qui propose cette activité, puis de cette ecole dépendent un ou des jours pour ces activités, ainsi que des horaires, auxquels correspondent un niveau...

Voilà

là c'est correct, à force de réfléchir dans tous les sens, je m'embrouille !
:shock:
Et hop !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 oct. 2006, 17:52

Salut,
Avant tout il faut savoir si :

1.Une activité donné est proposée par une seule école ou plusieurs
2.Une école propose une seule activité ou plusieurs

Une école propose plusieurs horaires pour une même activité .... vrai ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 332 Messages

25 oct. 2006, 17:56

Commence simple

Code : Tout sélectionner

ACTIVITE act_id act_libelle ECOLE eco_id eco_libelle
Une activité peut être présente dans plusieurs écoles et une école peut présenter plusieurs activités. Donc

Code : Tout sélectionner

ACTIVITE_ECOLE act_id eco_id
Après, tu as des jours, des horaires et des niveaux

Code : Tout sélectionner

JOUR jou_id jou_libelle HORAIRE hor_id hor_libelle NIVEAU niv_id niv_libelle
Enfin, si je comprends bien, une activité dans une école est présente certains jours, à certaines heures pour certains niveaux. Tu modifies donc ta table

Code : Tout sélectionner

ACTIVITE_ECOLE act_id eco_id jou_id hor_id niv_id
Après, c'est juste des problèmes de logique de remplissage et de logique de parcours en consultation.

Eléphant du PHP | 148 Messages

25 oct. 2006, 18:06

Salut !

-> Truc :

Plusieurs écoles peuvent proposer la même activité
Et une école propose plusieurs activités ou une seule
Et il y a effectivement plusieurs horaires pour une activité

-> Henri :

Merci de ces éclairscissements ! Cela suffit pour faire ce que je veux ? je n'imaginais pas que cela aurait l'air si simple... Je ne comprends cependant pas où sont les cles primaires :?:
Et hop !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

25 oct. 2006, 19:10

Et bien les pseudo-schémas d'Henri remplissent ces fonctions.

Les clé primaires sont les champ préfixés du nom de la table +"id" (dans l'exemple donné) plus généralement le 1er champ de chaque table:

Code : Tout sélectionner

ACTIVITE act_id PK (Primay Key) act_libelle ECOLE eco_id PK eco_libelle ACTIVITE_ECOLE act_eco_id PK act_id eco_id jou_id hor_id niv_id
j'ajouterai un champ en autoincrément dans la table servant de lien entre toutes les autres "ACTIVITE_ECOLE" pour ne pas devoir crée une clé primaire avec plusieurs champs (trop vague tous les champs peuvent être clé primaire) avec ce champ pas de souci.

Pour chaque activité proposée par une école à un jour ... tu crée un enregistrement dans la table "ACTIVITE_ECOLE".
Toutes les autres tables restent fixe (sauf en cas d'ajout d'une nouvelle activité ou école).

Tu liste donc la table des activités.. tu récupères l'id (act_id) grâce à cet id tu peux lister la table "ACTIVITE_ECOLE" pour récupérer les id école (eco_id) et autre horaire etc...

Voilà une modélisation.. tu peux lire CECI pour en savoir plus

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 148 Messages

25 oct. 2006, 19:15

Super, merci beaucoup,

je vais essayer, et je vous tiens au courant... merci pour tout ces conseils !

@ +
Et hop !

Invité
Invité n'ayant pas de compte PHPfrance

25 oct. 2006, 23:38

Bon, pour le moment ça a l'air de bien marcher...

Merci donc !!

;)

Eléphant du PHP | 148 Messages

25 oct. 2006, 23:39

Oups, c'était moi pas connecté en dessous, désolé !
Et hop !