Subject | Re: [firebird-support] Foreign Key on 2 or more columns |
---|---|
Author | Mark Rotteveel |
Post date | 2009-09-23T14:39:46Z |
svanderclock wrote:
1) Use multiple foreign keys
2) Use additional link tables
3) Create 'super'-table (as in superclass) so both ContactA and ContactB
share the same primary key space and use a discriminator value to see if
it is a type A or type B
4) My favorite: reconsider your design. Without further details it is
very likely your design is simply not optimal.
5) If all else fails: use triggers for integrity checking.
--
Mark Rotteveel
> hello,You are not being very clear with your problem, but solutions can be:
>
> in tableA i have some record with the field ID_contact that point to the table ContactA or to the table ContactB. so in this way i can not create a foreign key on my field ID_Contact.
>
> How to do ? i thing by stored procedure, but what is the best way and the most efficient way to do that in store procedure ?
1) Use multiple foreign keys
2) Use additional link tables
3) Create 'super'-table (as in superclass) so both ContactA and ContactB
share the same primary key space and use a discriminator value to see if
it is a type A or type B
4) My favorite: reconsider your design. Without further details it is
very likely your design is simply not optimal.
5) If all else fails: use triggers for integrity checking.
--
Mark Rotteveel