我Client
在 SQLAlchemy 中有一个简单的模型,主要使用声明性。这个模型有一个name
字段,并且和一个模型有多对多的关系MetaphoneCode
。代码如下:
class MetaphoneCode(Base):
"""Represents a metaphone code
"""
__tablename__ = 'mcodes'
id = Column(Integer, Sequence('mcodes_seq_id'), primary_key=True)
code = Column(String(20), index=True, nullable=False)
client_mcode_assoc_table = Table(
'client_mcodes',
Base.metadata,
Column('client_id', ForeignKey('clients.id')),
Column('mcode_id', ForeignKey('mcodes.id')))
class Client(Base):
__tablename__ = 'clients'
id = Column(Integer, Sequence('client_id_seq'), primary_key=True)
name = Column(Unicode(100), index=True)
mcodes = relationship('MetaphoneCode', secondary=client_mcode_assoc_table)
现在,由于变音位代码必须在name
自身发生变化时发生变化,所以我想表达这种需求,以便当我这样做时,client.name = "John Doe"
我想计算与这些名称(名字和姓氏)相关的变音位代码并mcodes
更新关系。
更新:我找到了一个简单的解决方案,如下所示;所以我的问题最好表述为“ ORM 属性事件系统是更新属性以响应另一个属性更改的最佳实践机制吗? ”