リレーションシップ属性を子テーブルの主キーでソートするにはどうすればよいですか? 多くのテーブルに共通の親があり、親にはこのような宣言システムを使用して各子のリストがあるスキーマがあります
class Scenario(Base):
__tablename__ = 'scenarios'
id = Column(Integer, primary_key=True, autoincrement=True)
class ScenarioMixin(object):
@declared_attr
def scenario_id(cls):
return Column(None, ForeignKey(Scenario.id),
primary_key=True,
index=True)
@declared_attr
def scenario(cls):
return relationship('Scenario',
backref=backref(cls.__tablename__))
# example scenario-specific table
class Child(Base, ScenarioMixin):
__tablename__ = 'children'
id1 = Column(String, primary_key=True)
id2 = Column(String, primary_key=True)
したがって、シナリオ オブジェクトには、子のリストである属性 children があります。リスト内の子オブジェクトの順序が任意であることを除いて、これは正常に機能します。これはアプリケーションのセマンティクスにとっては問題なく、非決定論的な動作につながります。複合主キーであっても、すべての子リストがそのテーブルの主キーでソートされるように mixin を構成する最良の方法は何ですか?