我正在寻找一种以声明方式描述关联对象的方法。除了在关联表中存储外键外,我还需要存储关联的创建日期等信息。
今天,我的模型看起来像这样:
# Define the User class
class User(Base):
__tablename__ = 'users'
# Define User fields
id = schema.Column(types.Integer(unsigned=True),
schema.Sequence('users_seq_id', optional=True), primary_key=True)
password = schema.Column(types.Unicode(64), nullable=False)
# Define the UserSubset class
class UserSubset(Base):
__tablename__ = 'subsets'
# Define UserSubset fields
id = schema.Column(types.Integer(unsigned=True),
schema.Sequence('subsets_seq_id', optional=True), primary_key=True)
some_short_description = schema.Column(types.Unicode(50), nullable=False)
# Define the subset memberships table
subset_memberships = schema.Table('group_memberships', Base.metadata,
schema.Column('user_id', types.Integer(unsigned=True), ForeignKey('users.id')),
schema.Column('subset_id', types.Integer(unsigned=True), ForeignKey('subsets.id')),
schema.Column('created', types.DateTime(), default=now, nullable=False),
)
我可以在一个关联对象中连接所有内容吗?或者我应该使用声明方式更改 stop 吗?
请您参考如下方法:
您目前使用的只是多对多关系。 docs 中描述了如何使用关联对象。 .
还有一个名为 associationproxy 的扩展名这简化了关系。
