Lorsque vous spécifiez une classe comme type de données d'un attribut, vous pouvez contrôler sa génération vers un MCD ou un MPD en utilisant les options Générer une table, Type de valeur et Générer un type de données abstrait (MPD uniquement) dans la zone de groupe Persistant située sur l'onglet Détails.
Dans l'exemple suivant, Client contient un attribut, Adresse, pour lequel la classe Adresse a été sélectionnée comme type de données (voir Spécification d'un classificateur comme type de données ou type de résultat) :
Client est spécifié comme persistant, et l'option
Générer une table est sélectionnée. Vous pouvez générer la classe
Adresse de l'une des façons suivantes :
Sous forme de classe persistante - en sélectionnant Générer une table dans la zone de groupe Persistant située sur l'onglet Détails (voir Propriétés d'une classe) :
Dans un MPD, les deux classes sont générées sous forme de tables liées par une référence qui relie la colonne de clé primaire Adresse ID (créée lors de la génération) dans la table parent Adresse et la colonne de clé étrangère Adresse dans la table enfant Client :
|
Dans un MCD, deux classes sont générées sous forme d'entités liées par une relation un-plusieurs qui relie l'identifiant primaire Adresse ID (créé lors de la génération) dans l'entité Adresse et l'attribue Adresse dans l'entité Client :
|
Sous la forme d'une classe incorporée - en sélectionnant Type de valeur :
Dans un MPD, Client est généré comme une table, avec tous les attributs de Adresse incorporés comme colonnes préfixées par adresse_ :
|
Dans un MCD, les deux classes sont générées comme entités, et Client inclut tous les attributs de Adresse incorporés comme attributs préfixés par adresse_ :
|
Sous forme de classe de type de données abstrait (MPD uniquement) - en sélectionnant Générer un type de données abstrait :
Dans un MPD, Client est généré comme une table et Adresse est généré comme un type de données abstrait (qui n'a pas de symbole), qui est référencé par la colonne Adresse :
|
Remarque : Si vous spécifiez une multiplicité (voir
Propriétés d'un attribut) pour l'attribut utilisant un type de données complexe, lorsque vous générez :
- Une classe persistante - la multiplicité est générée sous forme de cardinalité sur la référence entre les tables.
- Une classe incorporée - les attributs sont générés le nombre maximum de fois requis par la multiplicité, mais uniquement si le maximum est défini à une valeur fixe. Dans l'exemple suivant, la multiplicité d'attribut est 0..2, de sorte que les attributs seront incorporés deux fois :
- Une classe de type de données abstrait - pour les SGBD qui prennent en charge ARRAY et LIST pour les types de données abstraits, la multiplicité affecte la génération comme suit :
- 0..n ou 1..n - générer un type de données abstrait de type LIST (exemple : TABLE pour Oracle).
- 1..2 ou 0..10 - générer un type de données abstrait de type ARRAY (exemple : VARRAY pour Oracle).
- 0..1 ou 1..1 - générer un type de données abstrait de type OBJECT.