[odb-users] Create a foreign key constrain to a unique column of other table

Boris Kolpackov boris at codesynthesis.com
Mon Sep 11 10:22:25 EDT 2017

Vassilios Kountouriotis <b.kountouriotis at gmail.com> writes:

> For example assume I have a table 'Ticket' with 'AI_PK' as the primary
> key (auto increment INT) and a 'TicketID' as a unique CHAR(36). Now,
> in my Log table, how can I create a foreign key column LogTicketID
> pointing to the Ticket.TicketID?

I don't think there is an automatic way to do this. The two possible
ways that I can see are:

1. Map TicketID to the object id and AI_PK to an ordinary data member
   (if at all). The only drawback of this approach is that you won't
   get the auto-assigned id back into the data member on persist.

2. Make LogTicketID non-pointer or custom/transient pointer and load
   it manually (e.g., with an object loading view). If it was eager
   (i.e., non-lazy), then the database operation callback would be
   a natural place to do this.


More information about the odb-users mailing list