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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.