|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 150 ![]() |
Bonjour,
Je me demandais, s'il était possible d'employer la notion d'héritage avec Oracle. Concrétement je dispose d'une table "ecriture", je voudrais que cette table puisse avoir une clef secondaire qui pointe vers une table "reglement", mais ce que je voudrais c'est qu'il y ai différents types de réglements, donc 2 ou 3 autres tables qui héritent des attributs de la table réglement, et qui dispose chacune de leurs attributs spécifique. Est ce réalisiable ? Si oui, comment procéder pour utiliser la notion d'heritage ? |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() |
Oui c'est tout à fait possible.
Cela fait partie de Merise 2. Power Designer gère ce genre de modélisation et te gèrera le MLD/MPD qui correspond à partir d'un MCD implémentant de l'héritage. Si tu veux directement implémenter ce genre de table sous Oracle, cela s'avèrera un peu plus compliqué. Il existe deux possibilités, avec le "parent" existant ou sans "parent" existant. Pour un père existant, il te faut créer une table Règlement (le "parent") avec tous les champs en commun de tes tables Règlement et une clef primaire. Ensuite il te faut créer le stables règlements spécifiques (les "enfants"). Elles doivent utiliser la même clef primaire que la table "parent" et contenir les champs spécifiques.(ce qui veut dire que les tables "enfants" se réfèrent au père). Ta table écriture pointe vers le parent(FK) et les enfants pointent vers le parent.(FK) Sans "parent" existant (on ne crée pas la table règlement), chaque table "enfant" reprend tous les champs du "parent" plus ses champs spécifiques. Chaque table à sa propre clef primaire mais qui sont basées sur la même séquence. Les enfants pointent directement vers ta table écriture.(FK) Voilà j'espère que j'ai été assez clair. Ceci dit il existe un forum consacré à la modélisation UML et Merise si je me souviens bien.
__________________
Dyvim |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 88 ![]() |
Jamais entendu parler de cela avec ORACLE. désolé.
@+, NicK. |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Un début d'explication ici : http://oracle.developpez.com/guide/a...es/?page=Chap2
la Doc officielle vous en dira plus.
__________________
Rédacteur Oracle (Oracle ACE) Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche Je ne réponds pas aux questions techniques par MP Blogs: Forms-PL/SQL-J2EE - Forms Java Beans |
|
|
00
|
|
|
#5 | |
|
Membre confirmé
![]() |
Citation:
__________________
Dyvim |
|
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Soyons précis sur la terminologie.
Concernant Oracle, seul l'héritage de type est permis. Concernant la question initiale, il me parait question de "substitution" de types, à la différence que dans le cas présent, seule une référence vers un objet (table) d'un autre type est stocké dans la table principale. Il devra donc probablement utiliser la clause SCOPE IS
__________________
Rédacteur Oracle (Oracle ACE) Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche Je ne réponds pas aux questions techniques par MP Blogs: Forms-PL/SQL-J2EE - Forms Java Beans |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() |
Tu parles de types TABLE là c'est bien çà? Avec héritage entre ces différentes tables? Je ne sais pas si ca correspond à sa problématique...
Néanmoins je persiste à dire qu'à mon avis il voulait faire de l'héritage d'ENTITES (oui c'est vrai pas de TABLES Mais lui seul peut nous le dire.
__________________
Dyvim |
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 530 ![]() |
Je lis bien une notion de "pointeur" présent dans la table mère. Il s'agit donc bien de "référence" au sens objet Oracle.
__________________
Rédacteur Oracle (Oracle ACE) Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche Je ne réponds pas aux questions techniques par MP Blogs: Forms-PL/SQL-J2EE - Forms Java Beans |
|
|
00
|
|
|
#9 | |||
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 150 ![]() |
Citation:
Citation:
Citation:
|
|||
|
|
00
|
|
|
#10 |
|
Membre confirmé
![]() |
Et bien en fait sous Oracle, tu peux stocker des OBJETS (au sens POO) dans tes colonnes.
Ces objets peuvent avoir comme attributs des TABLE. Ces objets peuvent bien entendu hériter les uns des autres. Ce qui est différent de l'héritage Merise dans le MCD...
__________________
Dyvim |
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() |
Pour l'héritage dans une base de donnée, regarder la FAQ Merise.
Notamment cette FAQ là Elle devrait répondre à ta question bien mieux que je n'ai su le faire. Car un schéma est bien plus parlant que ce que j'ai pu raconter
__________________
Dyvim |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com