Bonjour,

Je suis actuellement en train de faire l'analyse d'un projet et je me pose une question au niveau de la conception de la DB. N'étant absolument pas DBA mais devant tout de même occupé cette fonction, je me tourne vers vous...

Ce qui suit décrit l'application, pour passer directement à la question, sautez le passage [NOTE].
[NOTE]
Pour situer un peu le contexte, il s'agit d'un projet destiné à gérer des entretiens "d'évolution" (d'évaluation en fait mais bon... ils ont appelé ça évolution^^).

Donc en gros, le supérieur s'entretien avec son subalterne puis après, reporte le contenu de l'entretien dans une application afin d'avoir un rapport. Dans l'application, il devra mentionner la personne concernée par cet entretien et sa fonction. Une fois la fonction choisie, le programme ira lui chercher les compétences qu'il faut évaluer pour cette fonction. Ces dernières sont organisées en groupe.
[/NOTE]

Pour le moment, j'ai donc une table TblEvoGroupe comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Id int not null identity(1,1) PK
IdGroupe int not null
IdLanguage int not null
Version int not null
Name varchar(150) not null
--divers champs de tracking
Déjà là, se pose la question de savoir s'il est préférable de choisir une clef primaire composée plutôt que d'ajouter un champ auto incrémenté.

Ensuite j'ai la table TblEvoCompetence comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Id int not null identity(1,1) PK
IdComp int not null
IdLanguage int not null
IdGroupe int not null
Version int not null
Texte varchar(1000) not null
--divers champs de tracking
La question que je me pose est :
Est-il possible d'établir une relation entre ces deux tables en sachant que le champ IdGroupe de la table TblEvoGroupe ne sera pas unique ?

Faut-il scinder cette table en 2 avec dans une, uniquement l'id du groupe et les champs de tracking et dans l'autre, les différentes traductions ? De cette manière j'aurai bien l'id de groupe qui sera unique pour servir de clef étrangère dans la table des compétences mais il y a peut-être une autre manière de faire...

NB : Une compétence ne peut appartenir qu'à un seul groupe.

Qu'en pensez-vous ?

Griftou.