Bonjour,
d'une manière générale, j'ai toujours essayé de respecter les formes normales et le principe de l'atomicité des données lors de la conception d'un modèle relationnel. Je me suis souvent retrouvé avec des modèles très complexes et les requêtes qui en découlent (et qui d'ailleurs au final peuvent poser de légers problèmes de consommation des ressources).
Je me demandais s'il existait des moyens (propres ou non au SGBD) pour simplifier tout cela. Si je prends un cas d'étude simple pour lequel un 'document' peut être lié à plusieurs 'types', ex. : un 'document' peut être de type 'Roman' et 'Poésie'
En général, j'ai tendance à procéder ainsi, avec 2 tables + 1 table de jointure :
jeu de données qui donnerait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 document d_id | d_titre type t_id | t_intitule j_type d_id | t_id
Tout d'abord, pensez-vous qu'il s'agit d'une bonne méthode dans le cas où la table 'type' n'est liée à aucune autre table et qu'en plus un enregistrement ne contient qu'un champ de donnée (i.e. ici l'intitulé) ? Y a-t-il une meilleure méthode ou plus communément utilisée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 document d_id | d_titre 1 | Le Val de Rose type t_id | t_intitule 1 | Roman 2 | Poésie j_type d_id | t_id 1 | 1 1 | 2
Je suis en train de réfléchir à l'utilisation du type SET qui pourrait peut-être répondre à ce type de besoin.
Auriez-vous des avis ou conseils sur l'utilisation du type SET ou sur d'autres techniques qui pourraient exister et simplifier les modèles et les requêtes dans ce même cas d'étude ? Sinon connaissez-vous des désavantages au type SET ? (ressources, recherches partielles/totales, souplesse, problèmes d'index ...)
En vous remerciant d'avance.
Partager