Pilote OData : Mappage des clés. SAP BusinessObjects 4.1
Informations de référence sur le pilote d'accès aux données
6.3.7 Pilote OData : Mappage des clés
Mappage de clés primaires
La propriété Clé d'un élément TypeEntity est mappée à la clé primaire de la table qui mappe l'élément
EnsembleEntités correspondant. Il peut s'agir d'une ou de plusieurs colonnes.
Exemple :
La table
Customers possède une clé primaire sur la colonne
CustomerID
, car l'élément TypeEntité
Customer possède une propriété Key qui fait référence à la propriété
CustomerID
.
Mappage de clés étrangères
Le protocole OData utilise des NavigationProperties pour exposer les chemins de jointure d'un modèle relationnel. Les NavigationProperties utilisent des Rôles définis dans des AssociationSets pour lier des
EntitySets selon leur multiplicité.
Le pilote OData représente des jointures bidirectionnelles sous forme de clés étrangères. Une jointure bidirectionnelle peut être créée entre des tables si les EntityTypes des EntitySets représentant ces tables contiennent des NavigationProperties qui utilisent le même AssocationSet pour lier des EntitySets.
Cela signifie que les deux extrémités d'un AssociationSet doivent posséder des NavigationProperties dans les deux EntityTypes. Les associations qui ne remplissent pas cette condition ne sont pas exposées en tant que clés étrangères.
Si la multiplicité des deux EntitySets est
*
, l'AssociationSet est mappé à une table. Si au moins une des multiplicités des EntityTypes est
1 ou
0..1
, l'AssociationSet est mappé à une clé étrangère de la table qui représente l'EntitySet de la multiplicité
*
. Le modèle d'un nom de clé étrangère est
-idref-
<NavigationProperty>
-
<Clé primaire>
.
Rappel :
Les clés étrangères sont des colonnes masquées dans les tables de fondation de données par défaut, car elles ne contiennent pas de données professionnelles. Vous pouvez cependant les afficher en modifiant les propriétés de table et de colonne. Voir le Guide de l'utilisateur de l'outil de conception d'information.
Attention :
SAP recommande aux utilisateurs d'application de ne pas interroger les colonnes
-idref
, car cela peut réduire les performances du pilote.
Exemple : Clés étrangères d'un EnsembleEntités
La table
Orders possède les clés étrangères
-idref-Customer-CustomerID
,
-idref-Employee-
EmployeeID et
-idref-Shipper-ShipperID car :
• L'EntityType
Order possède les NavigationProperties suivantes.
<EntityType Name="Order">
...
82 2013-06-29
Informations de référence sur le pilote d'accès aux données
<NavigationProperty Name="Customer" Relationship="NorthwindModel.FK_Orders_Customers" FromRole="Orders"
ToRole="Customers"/>
<NavigationProperty Name="Employee" Relationship="NorthwindModel.FK_Orders_Employees" FromRole="Orders"
ToRole="Employees"/>
<NavigationProperty Name="Shipper" Relationship="NorthwindModel.FK_Orders_Shippers" FromRole="Orders"
ToRole="Shippers"/>
</EntityType>
• Ces NavigationProperties font référence aux Associations
FK_Orders_
, qui lient l'EntityType
Order aux EntityTypes
Customer
,
Employee et
Shipper
. Il existe une multiplicité
0..1
dans chaque
Association. Cela génère trois clés étrangères dans la table qui représente l'EnsembleEntités
Or ders
.
<Association Name="FK_Orders_Employees">
<End Role="Employees" Type="NorthwindModel.Employee" Multiplicity="0..1"/>
<End Role="Orders" Type="NorthwindModel.Order" Multiplicity="*"/>
</Association>
• La colonne
CustomerID qui figure dans
-idref-Customer-CustomerID provient de la clé primaire de la table
Customers
.
• La colonne
EmployeeID qui figure dans
-idref-Employee-EmployeeID provient de la clé primaire de la table
Employees
.
• La colonne
ShipperID qui figure dans
-idref-Shipper-ShipperID provient de la clé primaire de la table
Shippers
.
Exemple : Clés étrangères d'un AssocationSet
La table
CustomerCustomerDemo possède les clés étrangères
-idref-CustomerDemographics-
CustomerTypeID et
-idref-Customers-CustomerID car :
• L'EntityType
Customer possède une PropriétéNavigation
CustomerDemographics
.
<EntityType Name="Customer">
...
<NavigationProperty Name="CustomerDemographics" Relationship="NorthwindModel.CustomerCustomerDemo"
FromRole="Customers" ToRole="CustomerDemographics"/>
</EntityType>
• L'EntityType
CustomerDemographic possède une PropriétéNavigation
Customers
.
<EntityType Name="CustomerDemographic">
...
<NavigationProperty Name="Customers" Relationship="NorthwindModel.CustomerCustomerDemo" FromRole="Cus tomerDemographics" ToRole="Customers"/>
</EntityType>
• Les NavigationProperties font référence à l'Association
CustomerCustomerDemo
, qui lie les
EntityTypes
Customer et
CustomerDemographic
. Cela génère deux clés étrangères dans la table qui représente l'AssocationSet
CustomerCustomerDemo
.
<Association Name="CustomerCustomerDemo">
<End Role="CustomerDemographics" Type="NorthwindModel.CustomerDemographic" Multiplicity="*"/>
<End Role="Customers" Type="NorthwindModel.Customer" Multiplicity="*"/>
</Association>
• La colonne
CustomerID qui figure dans
-idref-Customers-CustomerID provient de la clé primaire de la table
Customers
.
• La colonne
CustomerTypeID qui figure dans
-idref-CustomerDemographics-Customer
TypeID provient de la clé primaire de la table
CustomerDemographics
.
83 2013-06-29

Link pubblico aggiornato
Il link pubblico alla tua chat è stato aggiornato.