我一直在尝试对四个表之间的关系进行建模,其中可以将表A中的条目链接到其他三个表中的条目。例如:
Table A (components)
id brand status
N1 br3 free
N2 br2 used
N3 br2 used
N4 br3 used
N5 br2 used
Table B (device1)
id comp1 comp2
2 N2 N3
Table C (device2)
id comp1 comp2
6 N4 N5
Table D (device3)
id comp1 comp2
我可以像这样从设备表链接组件:
class Device1(db.Model):
id = db.Column(db.Integer, primary_key=True)
comp1 = db.Column(db.String(20), db.ForeignKey('components.id'), unique=True)
comp2 = db.Column(db.String(20), db.ForeignKey('components.id'), unique=True)
但是如何为表A中的所有三个表实现关系?
我正在寻找类似component.deviceinstalled
的东西,例如,它将返回该组件所连接的设备,而不管它属于哪个表(B,C或D),例如:
component1 -> <N2 br2 used>
component1.deviceinstalled -> <2 N2 N3> from table B
component2 -> <N4 br3 used>
component2.deviceinstalled -> <6 N4 N5> from table C