16-12-2015, 12:44 AM
Citation :Et si au lieu de mettre que 'type' = 'batiment', 'quete', etc... j'associais à chacun des types un numéro et que du coup 'type' = 1 ou 2 ou ... (avec 1 qui correspond aux batiments, etc...), serait-ce mieux ?
Non. Les données dans les tables ne doivent pas définir la structure des relations entre les tables (aka, le "sens" des données contenues dans une colonne ne doit pas dépendre des données des autres colonnes).
Lier Domaine et Prerequis est le but de la table Domaine_Prerequis (id, idDomaine, idPrerequis): celle-ci peut contenir les données (1, 1), (1, 2), (1, 3), (2, 2), (2, 4) indiquant que le Domaine 1 nécessite les Prerequis 1, 2, 3 et le Domaine 2 nécessite les Prérequis 2, 4 (un Prérequis peut servir à plusieurs Domaine).
On peut donc avoir plusieurs prérequis pour un même domaine, et un prérequis peut servir à plusieurs domaines (cela s'appelle "une table de relation N-N" car on peut avoir N domaines liés à N prerequis).
Comme "Prerequis" est une abstraction, tu peux avoir 2 Prerequis pour 1 Domaine, qui sont 2 PrerequisTechnologique.
L'ajout des étapes de quêtes se fait en ajoutant la table:
EtapesQuete(id_etape, #id_quete,..., #id_domaine)
A chaque EtateQuete, il faudra créer un Domaine, auquel seront associé un ou plusieurs Prerequis.
Je me demande si la confusion ne vient pas de la lecture qu'on fait chacun de "PrerequisBatiment". Dans ma réponse, il faut l'entendre comme "Un prérequis qui est d'avoir tel Batiment", alors que dans ta question (après 3e relecture), j'ai l'impression que tu le lis comme "Un prérequis permettant de construire un batiment".
Remplace "Domaine" par "RequiertPrerequis" dans mes réponses, ce sera peut-être plus clair.