Base de données, héritage ?

Petit nouveau ! | 6 Messages

25 juin 2013, 14:26

Bonjour à tous,

Je viens chercher un peu d'aide. Je suis stagiaire et novice, et je dois faire une base de données pour un projet. C'est un annuaire d'anciens étudiants. Ma base doit contenir des étudiants, des professeurs, des tuteurs et accessoirement des administrateurs. Sachant qu'un élève peut avoir plusieurs tuteurs, plusieurs professeurs tout au long de sa scolarité et qu'au final, il peut parfaitement devenir professeur ou/et tuteur. Un élève peut être élève et tuteur en même temps. Je ne vois pas comment mettre tout ça en place. J'avais pensé à un héritage mais ça me parait un peut fouillis. Un élève, un tuteur, etc hériterait d'un utilisateur par exemple.Un peu d'aide ne serait pas de trop !
Merci par avance à ceux qui auront la gentillesse de répondre.

Eléphant du PHP | 190 Messages

25 juin 2013, 14:36

Salut,

moi je ferai une table générale avec toutes personnes confondues (paul, jean, bernard, sophie, josianne :) ).
une table statut avec tout les statuts (étudiant, professeur, tuteur etc...)
et une table qui lie le tout

donc on aurait

personnes(id,nom,prenom,autre_champ)
statut(id,nom)
pers_has_statut(id_pers,id_statut)

Après y'a certainement d'autres moyens plus complexe (pour moi) qui te permettraient de gérer plus facilement les hiérarchies ou héritages par la suite. Mais je laisse ça aux pros.

:)

Petit nouveau ! | 6 Messages

25 juin 2013, 14:40

Merci, c'est déjà un début de réponse.
Oui je pense qu'il y a certainement possibilité d'avoir une gestion plus fine mais merci quand même pour ton post. Je vais attendre voir si des pros (ce n'est pas péjoratif pour toi, je ne me permettrais pas vu mon niveau !!!) sont à l'écoute.

Petit nouveau ! | 6 Messages

25 juin 2013, 14:43

Je rajoute le schéma de ce que j'ai déjà fait si ça peut aider
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 juin 2013, 21:14

salut,


Désolé mais c'est pas claire. Rien que les noms de colonne rebute à la lecture :)

il faut que tu définisse la chose plus clairement. qu'est ce que tu souhaite vraiment avoir ?

est ce que tu doit avoir un historique ?
est ce que c'est que pour une année ?

stagiaire, donc cours ?
as tu vu le modèle entité association (de la méthode merise) ?
ou une modélisation issue de XML (par exemple la méthode de Craig Lerman) qui te permetterais de répondre a tes questions.



@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 6 Messages

28 juin 2013, 09:21

Bonjour,

Oui je suis stagiaire et donc j'ai des cours. Nous avons vu merise mais j'avoue que je me perds un peu dans la modélisation du MCD.
Je dois faire, pour mon projet, un annuaire (sous forme de site web) des anciens élèves d'un organisme. Il y a déjà des bases de données existantes dans lesquelles je vais devoir rapatrier des données. Le choix du nom des colonnes m'a été imposée donc je n'y peux pas grand chose.
Je vais essayer de définir clairement mon sujet et le problème que je rencontre.
Je dois partir d'une table d'utilisateurs. Chaque utilisateur peut être étudiant, professeur ou tuteur. Il peut avoir plusieurs rôles à des dates différentes. Un utilisateur peut avoir été étudiant et devenir professeur par exemple. Il arrive qu'un tuteur soit également élève à un moment donné. Rien ne l'empêche d'être tuteur d'un élève et suivre en parallèle un autre enseignement en tant qu'élève. Tu vois, pour un "novice", ces situations ne sont pas simples à gérer avec merise, même si j'ai eu des cours, nous ne sommes pas allé si loin dans la réflexion.
Je voudrais donc pouvoir modéliser cela pour savoir à un instant T quel rôle a eu un utilisateur. Sachant que j'ai besoin également de savoir qui a été tuteur de qui (un tuteur peut avoir plusieurs élèves à gérer mais un élève n'a qu'un tuteur par année scolaire). Je voudrais pouvoir retrouver aussi quels professeurs ont eu les élèves. Les enseignements sont regroupés dans la table ENS_TAB_BLOCS au moyen d'une association réflexive. Les enseignements sont considérés comme des "blocs", eux même constitués de "blocs" (semestres) qui sont constitués de "blocs" (modules) etc....
Je dois donc avoir un historique de tout cela et c'est pour les années passée et à venir.
J'avoue que je me sens un peu dépassé pour mettre en place cette base de données. En attendant ta réponse (ou celles d'autres personnes), je vais aller voir la méthode de Craig Lerman comme tu me l'as conseillé.
En tout cas, par avance merci de ton aide.

ViPHP
ViPHP | 2577 Messages

28 juin 2013, 15:07

Il faudrait que tu identifies les informations que tu vas traiter dans un premier temps. A priori, c'est centrer sur les élèves (annuaire des anciens élèves) et uniquement de l'affichage.

1) définir les informations dont tu as besoin pour un élève
2) voir comment trouver les profs de cet élève (si c'est nécessaire) et voir comment tu organises ca (par année ?)
3) voir comment trouver les tuteurs de cet élève (si c'est nécessaire) et voir comment tu organises ca (par année ?)

A priori, tu t'en fout de savoir qu'un élève a été prof ou tuteur par exemple.

Petit nouveau ! | 6 Messages

28 juin 2013, 15:36

J'ai refait un MCD, qu'en pensez-vous ? Désolé pour les noms de colonnes mais ça m'est imposé. Mon gros problème est qu'un utilisateur peut avoir plusieurs rôles et qu'en fonctionde ces rôle je vais devoir remplir des données complémentaires (les tables de renseignement enseignants et tuteurs sont incomplètes, il faut encore que je définisse quoi mettre dedans mais elles auront d'autres données par la suite).
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.