我有一个包含Experiment
的表,每个Experiment
都有一个专用的exp_%id_metrics
表,其中包含metric_id
和value
的表。我还有一个关联metric_id
和name
的表。我想建立一种像下面代码中那样的关系。你做这件事的正确方法是什么?你知道吗
class Metric(Base):
__tablename__ = 'metrics'
id = Column(Integer, primary_key=True)
name = Column(String(256), nullable=False)
def __str__(self):
return "Metric(name='%s')" % (self.name)
class Experiment(Base):
__tablename__ = 'experiments'
id = Column(Integer, primary_key=True)
name = Column(String(256), nullable=False)
@property
def metrics_table(self):
return Table('exp_%s_metrics' % self.id,
MetaData(),
Column('id', Integer, primary_key=True),
Column('metric_id', Integer, ForeignKey('metrics.id')),
Column('value', Integer))
metrics = relationship("Metric", secondary=metrics_table)
def __str__(self):
return "Experiment(name='%s')" % (self.name)
for experiments in session.query(Experiment):
print("%s" % experiment.name)
for metric in experiment.metrics:
print("\t%s: %s" % (metric.name, metric.value))
目前没有回答
相关问题 更多 >
编程相关推荐