私はsqlalchemyを使用しています(今はsqliteを使用していますが、これは後で変更される可能性があります)。挿入とROWIDの順序が重要なデータベースを構築します。私は基本的には次があります。sqlalchemyは、多対1 /多対多の関係で順序を保持していますか?
class Message(Base):
__tablename__ = 'messages'
__table_args__ = {'sqlite_autoincrement':True}
id = Column(Integer, primary_key=True)
refs = relationship('Ref')
class Ref(Base):
__tablename__ = 'refs'
__table_args__ = {'sqlite_autoincrement':True}
id = Column(Integer, primary_key=True)
message_id = Column(Integer, ForeignKey('messages.id'))
私はmessage.refs
にMessage
オブジェクトとappend
Ref
オブジェクトを作成するときに、私はデータベースにこれをコミットするとRef
秒が挿入されることを確認してくださいしたいと思いますそれらがリストに表示される順序と同じです。 sqlalchemyはこれをデフォルトで行うのですか、それともそれぞれの後にフラッシュする必要がありますか?
右。 My 5¢:多対多の場合、これらの実装の詳細を隠すために、注文フィールド、関係、関連プロキシを持つ中間モデルが必要です。 –
おかげで、私は何が必要なのか完璧に見えます:) – Asterism