Bonjour à tous!
Je me permets de relancer la discussion car je me posais justement la même question que AsyNew.
J'aimerais modéliser ma base de données selon le méta modèle tel que défini dans l'article http://sqlpro.developpez.com/cours/m...n/metadonnees/ car la flexibilité que cela permet correspond exactement à mes besoins.
SQLpro a déjà répondu :
Ok. Néanmoins il doit y avoir une subtilité qui m'échappe encore...L'intérêt du méta modèle est de rajouter quelques colonnes d'information à certaines tables à la demande de l'utilisateur. Certainement pas de réinventer le concept de bases de données relationnelles !
Dans le méta modèle, si j'ai bien compris, chaque table (nécessitant des méta données) est listée dans la table TR_TABLES_TBL (selon l'exemple de l'article). Ensuite, des jointures permettent de les associer aux données et aux caractéristiques, ok.
Or, si j'ai une table nécessitant d'être listée par TR_TABLES_TBL, mais que cette table possède également des associations vers d'autres tables, dont une auto association réflexive, etc... Comment le faire apparaître sur le MCD ? (Et donc comment le traduire en SQL).
Je m'explique un peu plus.
Dans mon schéma, je dois modéliser l'ensemble d'un processus d'analyse impliquant des objets subissant des traitements. Un ou plusieurs objets peuvent être parents d'un autre objet (d'où l'auto association réflexive). Un traitement peut produire 1 à plusieurs objets (d'où l'association Produit). (Je vous passe les détails qui me semblent hors sujet)
Ci joint en PJ la façon dont j'ai modélisé ma BD en intégrant le méta modèle. Je n'ai pas utilisé la table TR_TABLES_TBL , mais ai plutot distingué mes deux tables principales Objet et Traitement, car comme vous pouvez le constater ma table Objet possède de nombreuses associations. Je ne vois pas d'autres solutions ne serait-ce que pour modéliser l'association "Produit" entre Traitement et Objet.
Du coup, au lieu d'une clé étrangère TBL_ID dans DONNEE, j'ai deux clé étrangères, correspondant l'une à Objet, l'autre à Traitement. Cela voudrait dire que dans un modèle plus grand encore, j'aurais autant de clés étrangères que de tables à utiliser...
Est-ce une bonne idée que de modéliser ainsi ? Y a t il une manière plus élégante d'intégrer un méta modèle tout en conservant les associations entre mes tables ?
J'espère recevoir vos avis éclairés !
Partager