我在 SQLAlchemy 中有这个表结构:
User(Base)
__tablename__ = 'users'
id = Column(Integer, primary_key = True)
addresses = relationship("Address", backref="user")
Address(Base)
__talbename__ = 'addresses'
id = Column(Integer, primary_key = True)
user_id = Column(Integer, ForeignKey(users.id))
所以是多(地址)对一(用户)的关系。
我现在的问题是如何在不删除已经存储的地址的情况下轻松地向用户添加地址。
在纯 SQL 中,我只需在地址表中插入一行,其中包含正确用户的外键。
这就是我现在在 SQLAlchemy 中的做法(用户类中的方法):
def add_address(self, address):
adds = self.addresses
adds.append(address)
self.addresses = adds
所以我基本上做的是首先找到所有地址,然后附加列表以再次用额外的地址覆盖列表。
我想知道是否有更有效的方法来做到这一点?