Du använder ett mönster som heter Polymorphic Associations, och nej, det finns inget sätt att göra det och använda främmande nycklar för att upprätthålla referensintegritet.
Jag föreslår att du gör en vanlig tabell som a_points
, b_points
och c_points
referens. Då kan dina poängpar referera till den gemensamma tabellen.
a_points -->
b_points --> common_points <-- point_pairs
c_points -->
Med andra ord, sättet att få polymorfa associationer att fungera är att vända referensens riktning.