The RDB DAS provides the ability to work with single-column keys as well as keys composed of multiple columns (compound keys). RDB DAS clients can specify the primary key for a table as well as foreign keys that reference other tables. The primary key for a table can be identified to the DAS via configuration (typically via a configuration xml file). The following is an example config file that defines a compound primary key:

   <Config xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        
      <Table tableName="ORDERDETAILS">
         <Column columnName="ORDERID" primaryKey="true"/>
         <Column columnName="PRODUCTID" primaryKey="true"/>
      </Table>
    
   </Config>

Relationships between tables are in terms of primary keys and foreign keys and so foreign keys can also be compound. The following example illustrates a relationship using a compound foreign key:

   <Config xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        
      <Table tableName="ORDERDETAILS">
         <Column columnName="ORDERID" primaryKey="true"/>
         <Column columnName="PRODUCTID" primaryKey="true"/>
      </Table>
    
      <Table tableName="ORDERDETAILSDESC">
         <Column columnName="ID" primaryKey="true"/>
      </Table>

      <Relationship name="orderDetailsDesc" primaryKeyTable="ORDERDETAILS" 
                     foriegnKeyTable="ORDERDETAILSDESC" many="true">
         <KeyPair primaryKeyColumn="ORDERID" foriegnKeyColumn="ORDERID"  />
         <KeyPair primaryKeyColumn="PRODUCTID" foreignKeyColumn="PRODUCTID" />
      </Relationship>
   </Config>

WorkingWithCompoundKeys (last edited 2009-09-20 22:48:06 by localhost)