微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SqlAlchemy Core:多次定义一对一关系

如何解决SqlAlchemy Core:多次定义一对一关系

我现在已经通过一对多实现了一个与其他三个表有关系的事件表。

events = Table(
    "events",Metadata,Column("id",Integer(),primary_key=True),Column("creator",ForeignKey(users.c.id,ondelete="SET NULL")),...
    Column("location_id",ForeignKey(locations.c.id,ondelete="SET NULL"),nullable=False),Column("activities_id",ForeignKey(activities.c.id,UniqueConstraint("location_id","id",name="event_location")
)

users = Table(
    "users",Integer,......

activities = Table(
    "activities",....

locations = Table(
    "locations",....

但是这样的连接并不满足业务逻辑。一个事件对象只能有一个创建者、位置和活动。

现在我想为所有外键字段定义一对一的关系。我找到了将 ForeignKey 定义为 primary_key=True (How to define one-to-one and many-to-many relationship using SQLAlchemy Core) 的解决方案 但是我不明白如何使用三个字段来做到这一点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。