Tengo un modelo SQLAlchemy configurado en mi aplicación que debe imitar la funcionalidad de "seguidores" en Twitter, es decir. los usuarios tienen una relación de muchos a muchos entre sí (seguidores y seguidores). Las tablas tienen la siguiente estructura (sa es el módulo sqlalchemy):SQLAlchemy Relación muchos a muchos en una sola tabla
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)
)
me he encontrado un poco de un control de carretera, sin embargo, tratar de utilizar orm.mapper para crear esta relación, ya que la tabla secundaria se refiere de nuevo a la misma tabla primaria en ambas direcciones. ¿Cómo haría para mapear esta relación con el ORM?
Gracias, esto funcionó a la perfección. ¿Quiso decir que la tabla siguiente no requiere una columna ID y puede usar una PK compuesta? No veo cómo eso podría funcionar con la tabla de usuarios. – Travis
Sí, fue un error. Me refiero a la siguiente tabla. –
Me encontré con esto y tuve que hacerlo declarativamente, aquí está el equivalente para futuros buscadores. –