Problème: table associative insertion unique
Bonjour à tous,
Je travaille actuellement sur un projet pour une école. Des étudiants peuvent s'inscrire à des blocs (différents cours).
Ces blocs ont des propriétés qui sont différentes pour chaque étudiant (notes du bloc ou taux de participation au bloc, par exemple).
Concrètement, j'ai créé une table etudiant, une table bloc et une table associative etudiantBloc du fait de la relation n-n entre etudiant et bloc
Mon problème: Pour l'instant, un étudiant peut être relié uniquement à un seul bloc, dès que j'attribue une nouvelle relation entre le même étudiant et un autre bloc, l'entrée précédente est supprimée et remplacée par la nouvelle. Ce qui est totalement incohérent car un étudiant ne pourrait participer qu'à un bloc.
Voici mon schema .yml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| etudiant:
columns:
numero:
type: integer(4)
primary: true
notnull: true
autoincrement: true
titre:
type: enum
values: ['M','Mme','Mlle']
notnull: true
nom:
type: string(45)
notnull: true
prenom:
type: string(45)
notnull: true
dateNaissance:
type: date
localite:
type: string(45)
canton:
type: string(45)
relations:
blocs:
class: bloc
local: etudiant_numero
foreign: bloc_numero
refClass: etudiantbloc
foreignAlias: etudiants
type: one
bloc:
connection: doctrine
columns:
numero:
type: integer(4)
primary: true
autoincrement: true
code:
type: string(10)
nom:
type: string(60)
date:
type: date
heuresEnseignees:
type: integer(4)
etudiantbloc:
connection: doctrine
columns:
etudiant_numero:
type: integer(4)
primary: true
bloc_numero:
type: integer(4)
primary: true
statut:
type: enum
values: ['Inscrit','Echec','Réussi']
note:
type: double
heuresParticipation:
type: double
prix:
type: double
relations:
etudiant:
local: etudiant_numero
foreign: numero
type: many
bloc:
local: bloc_numero
foreign: numero
type: many |
Si vous avez des idées de pistes à me donner, je vous en remercie d'avance.