【发布时间】:2012-12-30 14:24:13
【问题描述】:
我正在编写一个 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 做这样的事情吗?
【问题讨论】:
标签: python flask sqlalchemy flask-sqlalchemy