I have a table, A
, whose rows have a many-to-one relationship with several other tables. The rows in the other tables--B
, C
, D
--each have many A
s. Each A
relates exclusively to another table. For example you never have an A
that relates to both a B
and C
.
Currently, the A
table is represented as a "flattened" sum-type where each row has a nullable AId
, BId
, CId
, & DId
. The "parent" of any given row in A
is determined by which one of these FK's in non-null.
This has been working fine so far. However, I have several new features to be implemented down the road which will also have many A
s.
My question is: is there a more extensible design than simply adding more columns to store FK's to these other tables?