mon problème c'est l'ajout la suppression et la modification d'un stage je dois utiliser la table stage ou bien la table de jonction?
mon problème c'est l'ajout la suppression et la modification d'un stage je dois utiliser la table stage ou bien la table de jonction?
Pour l'ajout d'un stage tu dois le faire en plusieurs étapes :
- une page avec le détail du stage (date, mission…)
- une page avec les stagiaires à ajouter au stage
Tu peux faire les deux dans un même formulaire, mais dans ce cas tu devras dans ton traitement ajouter d'abord le stage, puis ajouter les stagiaires dans l'associations, sinon les clés étrangères vont lever des erreurs.
si j'ai bien compris ,la première étape consiste a faire l'ajout d'un stage en utilisant la table stage ?
mais la deuxième étape j'ai pas vraiment bien compris. quel table vais_je utiliser?
Merci beaucoup;
Un truc dans ce gout ça te parle ?
oui,j'ai bien compris qu'il fallait faire une table de jointure ,c'est la façon dont je doit l'utiliser dans mon application php qui m'échappe.
j'ai fais l'ajout,la modification,la suppression des stagiaire
j'ai fais l'ajout,la modification,la suppression des encadrant
après je sais que je dois faire l'ajout,la modification et la suppression d'un stage ,mais de quel façon?
Merci;
Je ne vois pas trop ce qui te bloque...
Tu fais pareil que pour stage et encadrant, sauf que tu ajoutes des champs multiselect comportant la liste des encadrants/stagiaires de sorte à retirer de ton formulaire les infos du stage (tu les insères en db et récupère l'id), un tableau d'id de stagiaires (tu ajoutes id_stagiaires, id_stage récupéré dans ta table asso), ...
ça veut dire que dans le formulaire de stage ,il doit y avoir les informations du stages,l'id de l'encadrant et l'id du stagiaire?
Merci;
Si tu pars sur des tables associations oui, avec non pas l'id du stagiaire et du maitre de stage mais bien des stagiaires et ou des maitres de stages (en 0..n à chaque fois).
j'ai commencé le formulaire d'ajout avec les champs multiselect des stagiaires et des encadrant ,mais j'ai pensé un quelque chose,les champ de stage vont être insérer dans la table stage mais les deux champs multiselect vont être insérer dans quel tables exactement car dans la table stage y a aucune clé étrangère
Merci;
Ben justement, tu mets les associations dans les tables asso...
Du coup dans ton multiselect tu as l'id des stagiaires selectionnées, donc tu pacours ton tableau de stagiaires et tu fais des inserts dans ta tables asso...
Merci beaucoup ,vos réponses m'ont aider a avancer dans mon projet .
quand je dois faire l'ajout d'un stage un champ multicast pour l'encadrant n'est pas nécessaire car il dépend du stagiaire et je n'ai nulle part ou l'insérer dans la base .
Je m'explique ,quand j'ai fais l'ajout du stagiaire j'ai déjà défini l'encadrant du stagiaire.
Qu'en pensez vous?
Si ta base est faite, peux-tu poster un diagramme de base fait avec mysql workbench : menu "database" => "reverse engineer", puis quand tu as le schema "File" => "Export" => "Export as PNG".
Pour le maître de stage, je ne l'associerais pas à un stagiaire, car si le stagiaire vient 2 fois dans l'entreprise, il peut avoir un maître de stage différent (première fois, pistonné par Papa pour l'été, service courier, deuxième fois stage de fin d'étude, analyse de la solidité de l'aile d'un avion... j'espère que tu attribueras un maître de stage différent...).
Du coup soit tu l'ajoutes sur le stage, et ça c'est simple, soit tu l'ajoutes sur l'association stage/stagiaire, et là c'est top mais ça demande plus de boulot...
je ne maitrise pas vraiement ce logiciel , si je fais de erreurs c'est normal.
je pense que c'est une bonne idée de mettre l'encadrant dans la table stage .
Pour la table formation c'est mieux de la laisser en relation avec stagiaire ,non?
Merci;
Pour faire simple :
- Relie plutôt encadrant à stagiaire_stage ou juste stage.
- Isole formation, et relie la via une table association stagiaire_formation (idformation, idstagiaire, startdate, enddate).
- Crée une table user, qui peut être par exemple liée à un LDAP dans le futur (utilisateurs des systèmes de l'entreprise) et relie tes encadrants et stagiaires à des users.
- Les spécialités des encadrants doivent se trouver dans une table à part, specialites, qui sera reliée soit par une simple clé étrangère (une seule spécialité), soit par une table association.
- Tu peux isoler établissement de formation dans une table d'établissement, laquelle peut être liée à une table address par exemple : un établissement propose plusieurs formations sur plusieurs campus...
je crois que je vais faire l'encadrant dans la table d’association,vous avez dis que c'était plus de boulot pourquoi?
et pour la table formation pourquoi faire une table association ,es qu’il y a une relation n n?
Merci;
Pour l'encadrant, il faut imaginer les interfaces (je te conseille de faire des wireframes pour définir tout ça...).
D'une part, avec une association stage <-> encadrant, tu mets un multiselect dans ton formulaire de stage, puis tu balances tout en vrac dans ta table stage_encadrant.
D'autre part, avec une association association stage <-> stagiaire <=> encadrant, tu as un encadrant pas association de stagiaire. Il faut donc imaginer ton formulaire stage, avec son multiselect d'étudiant, qui au submit t'envoi sur une page sur laquelle tu as des associations stagiaires => maitre de stage :
Stagiaire 1 => multiselect encadrant.
Stagiaire 2 => multiselect encadrant.
Stagiaire 3 => multiselect encadrant.
...
Ou un truc dans ce gout. Tu peux aussi le faire en 1 seule page, mais c'est encore plus galère (avec pas mal de JS pour ajouter des champs et tout...
Question suivante, la relation n<=>n des formations. Je reprends mon exemple de tout à l'heure, mais je change les sujets de stage :
- 1er stage du type : dut informatique, développement d'une interface de gestion des stagiaires
- 2eme stage du même type : bts gestion réseau (ouai il s'est un peu reconverti), lier l'application stagiaires avec LDAP pour gérér les comptes AD qui permettent de s'authentifier sur le réseau
Là notre gus il a bien deux formations différentes, et pourtant il a bien aussi deux stages différents... Le premier à l'étage des devs, le second à l'exploitation...
En plus, d'autres gus peuvent avoir fait une des deux mêmes formations.
quand je ferai une table assosiation formation_stagiaire,dans le formualaire d'ajout de formation y aura un champs multiselect stagiaire?
Je vais peut être pas non plus tout faire pour toi... Je peux te faire une prestation de développement payante sinon ! (en plus j'aurais mis moins de temps...)
Pour celle là j'utiliserais pas de multiselect mais plutôt un champ autocomplete sur la fiche de la formation et un champ autocomplete sur la fiche du stagiaire, et j'ajouterais les formations/stagiaires 1 par 1.
Merci,vous m'avez beaucoup aidé dans mon application.
Dernière question :dans toutes mes tables j'ai fais des clé primaire auto incrémente ,es que dans l'affichage,la suppression et la modification des table vaut mieux les afficher ou pas?
Salut,
les clés auto-incrémentées relèvent de la cuisine interne. Elles sont nécessaires pour les divers traitements métiers mais (généralement) d'aucune utilité visuelle pour les utilisateurs.
Voir un tableau comme ceci a un intérêt assez limité :
| id | nom | ----------------------- | 1472589 | hitachi95 |
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager