Subject | Re: [firebird-support] Inserting rows with cyclic referential dependencies |
---|---|
Author | Martijn Tonies |
Post date | 2006-04-11T12:38:17Z |
> > > I can't make sense of your curious column names so here's a simpleDid I say "want"? ;-)
> >example:
> >
> >Simple? :-)
> >
> > > create table Person (
> > > id integer not null,
> > > FirstNames varchar(60),
> > > Surname varchar(60) not null,
> > > .... other data...,
> > > constraint PKPerson primary key(id)
> > > );
> > > commit;
> > > create table Partnership (
> > > Partnership_id integer not null,
> > > HusbandID integer not null,
> > > WifeID integer not null
> > > check (WifeID <> HusbandID),
> > > constraint PKPartnership primary key(Partnership_id),
> >
> >Ah, so you can have multiple Husband-Wife combinations? :-)
>
> If you want monogamy, put unique constraints on HusbandID and WifeID. ;-)
> > > constraint FKHusband foreign key (HusbandID) references Person,Depends on the situation... Given that these are single column FKs, which
> > > constraint FKWife foreign key (WifeID) references Person,
> > > constraint UQPartnership Unique(HusbandID, WifeID)
> > > );
> >
> >I would do a PK on (HusbandID, WifeID) and drop the artifial
> >PK in this one ... :-)
>
> I wouldn't. I don't like having the PK getting jumbled up with the
> foreign keys. Artificial PKs are cheap and are good from an indexing POV.
are unique anyway, the index should be quite ok.
Ah, but getting a bit off topic here...
There's many solutions for each problem ;-)
Martijn Tonies
Database Workbench - tool for InterBase, Firebird, MySQL, NexusDB, Oracle &
MS SQL Server
Upscene Productions
http://www.upscene.com
My thoughts:
http://blog.upscene.com/martijn/
Database development questions? Check the forum!
http://www.databasedevelopmentforum.com