gpt4 book ai didi

python - 如何在 SQLAlchemy 中模拟 `UNIQUE` 约束?

转载 作者:太空狗 更新时间:2023-10-29 18:28:05 25 4
gpt4 key购买 nike

我正在编写一个 Flask/SQLAlchemy 应用程序,其中包含用户和组。

用户可以属于多个组,并且他们在每个组中都有一个唯一的编号Asking about how to model the database我被建议为我的多对多关系使用以下表结构:

TABLE UserGroups
GroupID
UserID
UserNumber
PRIMARY KEY (GroupID, UserID)
UNIQUE (GroupID, UserNumber)
FOREIGN KEY (GroupID)
REFERENCES Groups (GroupID)
FOREIGN KEY (UserID)
REFERENCES Users (UserID)

现在我知道如何使用 SQLAlchemy 创建常规的多对多关系,但我不知道如何用附加的 UserNumber 表示 UNIQUE 约束字段。

我在数据库设计、ORM 和 SQLAlchemy 方面没有太多经验,所以这可能很明显,但我找不到表达它的方法。

我没有得到的事情是:使用常规的多对多关系,我的 User 类有一个 list-like 属性 groups 其中包含他所属的所有组,但这完全隐藏了 UserGroups 连接表,我不知道如何访问 UserNumber 字段。

这对我来说有点模糊。关于如何使用 SQLAlchemy 做这样的事情,您有什么很好的例子或解释吗?

最佳答案

问题的第一部分(关于创建具有多列的唯一约束)已经是 answered by cleg .

但是,如果您想在映射表中添加额外的列,则默认的多对多方法不起作用。相反,您应该使用 Association Object Pattern .此外,您可以使用association_proxy 简化用户和组之间的访问。 .

proxied_association.py来自 SQLAlchemy examples应该是一个很好的起点。

关于python - 如何在 SQLAlchemy 中模拟 `UNIQUE` 约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14355499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com