// element definitions site((Category |Item | Person | OpenAuction | ClosedAuction)*) OpenAuction(id, open, sell, bid*) open(itemref) sell(personref) bid(personref, stamp) stamp(date, time, increase) ClosedAuction(id, closed, buy, sell) closed(itemref) buy(personref) sell(personref) Item(id, inclusion) inclusion(categoryref) Category(id, relate*) relate(categoryref) Person(id, interest*, watch*) interest(categoryref) watch(openauctionref) // key constraints KEY(OpenAuction.id) KEY(ClosedAuction.id) KEY(OpenAuction.open.itemref) KEY(ClosedAuction.closed.itemref) KEY(Item.id) KEY(Category.id) KEY(Person.id) // foreign key constraints KEYREF(open.itemref --> Item.id) KEYREF(closed.itemref --> Item.id) KEYREF(inclusion.categoryref --> Category.id) KEYREF(relate.categoryref --> Category.id) KEYREF(interest.categoryref --> Category.id) KEYREF(watch.openauctionref --> OpenAuction.id) KEYREF(OpenAuction.sell.personref --> Person.id) KEYREF(bid.personref --> Person.id) KEYREF(buy.personref --> Person.id) KEYREF(ClosedAuction.sell.personref --> Person.id)