4
我正在使用sqlalchemy(现在用sqlite,但这可能稍后会改变)来建立一个数据库,其中插入顺序和rowids是重要的。我主要有以下几个:sqlalchemy在多对一/多对多的关系中保持秩序吗?
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
对象和append
一个Ref
对象message.refs
,我想可以肯定的是,当我犯这个数据库的Ref
旨意在插入它们出现在列表中的顺序相同。 sqlalchemy默认是这样做还是每次追加后都需要刷新?
对。我的5¢:对于多对多,您需要一个带有订购字段的中间模型,与它的关系以及关联代理来隐藏这些实现细节。 – 2011-12-22 15:50:35
谢谢范,看起来完美,我需要:) – Asterism 2011-12-23 05:43:31