well...
only the OneToOne relationship can be solved with a query (since "historical
id" is managed and endDate = null)
all the other kinds of relationship (OneToMany, ManyToOne, ManyToMany)
should need a historical join table (using the historical id as key, and
having start and end date too)

little example:

- A points to list of B's.
- a specific B of the list changes several times, since the join table
points to the historical id, it works ok, getting the last one.
- now I want to remove some B's and add new ones, the join table must be
"finalized" and a new one created, because if I "go back in time", I must
know what list of B's was valid at that moment.

[]s, gandhi

2007/5/22, Craig L Russell <[EMAIL PROTECTED]>:

Hi,

On May 22, 2007, at 5:59 AM, Ricardo Andere de Mello wrote:

> anyway, the "selected automatically" part is not simple. ;-)
> every relatioship must be historical and means you will need a join
> table to
> do it.

I haven't studied this in detail, but it seems that if you have a
foreign key in one table that refers directly to another table, and
if you select the historically correct rows from each table, then a
join table isn't needed. This works even in the case of changing the
foreign key value, since the historically correct version of the row
has the correct foreign key value.

What case requires a separate join table?

Regards,

Craig

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:[EMAIL PROTECTED]
P.S. A good JDO? O, Gasp!





--
Ricardo Andere de Mello
Presidente do Quilombo Digital
55 (11) 3271-7928 / 55 (11) 9917-7722

Reply via email to