You can handle some data relationships with auxiliary attribute tables. For example, you can store users and their addresses in two related database tables, as described in the following piece of an XML repository definition:

<item-descriptor name="user">
  <table name="dps_user" type="primary" id-column-names="id">
    <property name="login" data-type="string"/>
  <table name="dps_address" type="auxiliary" id-column-names="id">
    <property name="address1"/>
    <property name="city"/>
    <property name="state"/>
    <property name="zip"/>

Each user has a single address. For the purposes of this example, the user information is stored in a separate table from the user’s address information.

Note that if you use auxiliary tables, each table definition, whether primary or not, must define an id-column-names attribute. This attribute defines the column names in the table that represent the repository ID. This indicates how to join auxiliary tables to the primary table. The columns in the id-column-names attribute must be listed in the same order as they are in the id-column-names attribute of the primary table.