我在我的应用程序中设置了一个SQLAlchemy模型,该模型应该模仿Twitter上的“追随者”功能,即。用户与对方(追随者和追随者)有着多对多的关系。该表的结构如下(sa是SQLAlchemy的模块):SQLAlchemy单表上的SQLAlchemy多对多关系
t_users = sa.Table("users", meta.metadata,
sa.Column("id", sa.types.Integer, primary_key=True),
sa.Column("email", sa.types.String(320), unique=True, nullable=False),
...etc...
)
t_follows = sa.Table("follows", meta.metadata,
sa.Column("id", sa.types.Integer, primary_key=True),
sa.Column("follower_id", sa.types.Integer, sa.ForeignKey('users.id'), nullable=False),
sa.Column("followee_id", sa.types.Integer, sa.ForeignKey('users.id'), nullable=False)
)
我碰到了一下但一个路障,试图用orm.mapper建立这种关系,因为辅助表是指回到两个方向相同的主表。我将如何将这种关系映射到ORM?
谢谢,这工作完美。你的意思是下面的表不需要ID列,可以使用复合PK?我不明白这是如何与用户表一起工作的。 – Travis 2009-12-11 19:29:26
是的,这是一个错误。我的意思是遵循表格。 – 2009-12-11 20:27:37
我遇到过这个问题,不得不以声明方式来做,这是未来发现者的等价物。 – 2011-04-13 16:00:20