DODS FAQs - Can I use any column as a Primary Key?
dods.gif (11357 bytes)In release 3.5.2, the DODS code generators support arbitrary primary keys.

To create the tables

    create table person (
	id	integer,
	name	char(50),
	primary key(id)
    );

    create table employee (
	id	integer,
	title	char(50),
	primary key(id)
	foreign key(id) references person(id)
    );

the .doml file would contain lines like

    <table id="data.person" notUsing OId="true">
	<column id="id" usedForQuery="true" isPrimaryKey="true">
	    <type dbType="INTEGER javaType="String"/>
        </column>
	<column id="name" usedForQuery="true">
	    <type dbType="CHAR" javaType="String" size="50"/>
        </column>
    </table>
    <table id="data.employee" notUsing OId="true">
	<column id="id" usedForQuery="true" isPrimaryKey="true">
	    <type dbType="INTEGER javaType="String"/>
	    <referenceObject constraint="true" reference="data.Person" 
		foreignKeyColumn="id"/>
        </column>
	<column id="title" usedForQuery="true">
	    <type dbType="CHAR" javaType="String" size="50"/>
        </column>
    </table>

The new XML attrbutes are

  • isPrimaryKey
  • foreignKeyColumn
  • foreignKeyGroup (used only for multicolumn keys)

For all the latest information on DODS, please refer to http://dods.enhydra.org
Questions, comments, feedback? Let us know...