Sie verwenden ein Muster namens Polymorphic Associations, und nein, es gibt keine Möglichkeit, dies zu tun und Fremdschlüssel zu verwenden, um die referenzielle Integrität zu erzwingen.
Ich schlage vor, Sie erstellen eine gemeinsame Tabelle mit a_points
, b_points
, und c_points
Hinweis. Dann können Ihre Punktpaare auf diese gemeinsame Tabelle verweisen.
a_points -->
b_points --> common_points <-- point_pairs
c_points -->
Mit anderen Worten, um polymorphe Assoziationen zum Laufen zu bringen, müssen Sie die Richtung der Referenz umkehren.