Uygulamamda Twitter'da "follower" işlevlerini taklit etmesi gereken bir SQLAlchemy modelim var. Kullanıcıların birbirleriyle çok fazla ilişkisi vardır (hem takipçiler hem de takip edenler). İkincil tablo geri atıfta beriSQLAlchemy Tek Bir Tabloda Çoktan-Çok İlişki
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)
)
Ben, bu ilişkiyi oluşturmak için orm.mapper kullanmaya çalışıyor, ancak bir barikat biraz karşılaştık: tablolar aşağıdaki şekilde yapılandırılmıştır (sa sqlalchemy modülüdür) her iki yönde de aynı birincil tabloya. Bu ilişkiyi ORM ile nasıl eşleştireceğim?
Teşekkürler, bu mükemmel çalıştı. Aşağıdaki tablonun bir ID sütunu gerektirmediğini ve bir kompozit PK kullanabileceğini mi söylediniz? Bunun kullanıcı masasıyla nasıl çalışabileceğini anlamıyorum. – Travis
Evet, bir hataydı. Tabloyu kastettim. –
Bu işe girdim ve bunu deklaratif olarak yapmak zorundaydım, işte gelecekteki bulucular için eşdeğer. –