Flask SQLAlchemy 中的订阅建模

Posted

技术标签:

【中文标题】Flask SQLAlchemy 中的订阅建模【英文标题】:Subscription modelling in Flask SQLAlchemy 【发布时间】:2016-02-08 10:47:34 【问题描述】:

我正在尝试在 Flask SQLAlchemy 中为以下场景建模:

有一个SubscriptionPacks 列表可供购买。当特定的User 购买SubscriptionPack 时,他们会启动该Subscription 的实例。

型号如下:

一个User 可以有多个Subscriptions(一次只有一个处于活动状态),每个Subscription 将引用一个SubscriptionPack

这将如何在 SQLAlchemy 中建模?

目前我在Subscriptions 模型中将User.idSubscriptionPack.id 引用为db.ForeignKey。我在Users 表中将Subscriptions 引用为db.Relationship。这似乎不一致和错误,导致我不得不手动编写大量 SQL 语句才能返回正确的结果。

关于如何正确执行此操作的任何帮助?

【问题讨论】:

【参考方案1】:

对于那些偶然发现这一点的人,我正在寻找的是bidirectional SQLAlchemy Association Object pattern。

这允许多对多的中间表拥有自己存储的详细信息。在我上面的例子中,Subscription 表需要是一个关联对象(有它自己的类)。

【讨论】:

以上是关于Flask SQLAlchemy 中的订阅建模的主要内容,如果未能解决你的问题,请参考以下文章

flask数据库管理

如何在 Flask-SQLAlchemy 中执行多个“order_by”?

flask常用的第三方插件

如果我的mysql套接字不在/ tmp中,是否可以将Mysql与SqlAlchemy和Flask一起使用?

深入浅出Flask(51):flask_sqlalchemy的增删查改

flask扩展模块flask-sqlachemy 的使用---mysql数据库