【发布时间】:2013-07-15 07:45:50
【问题描述】:
我知道有人问过类似的问题,但是我真的很难理解通用字段是如何在 SQLAlchemy 中实现的。
我有一个权限类/表,我想包含一个可以与任何模型类型相关的字段。
我查看了示例和这篇博文http://techspot.zzzeek.org/2007/05/29/polymorphic-associations-with-sqlalchemy/
是否可以在没有单独的表的情况下建立通用关系?仅仅通过存储object_type和id?大致如下:
class Permission(AbstractBase):
user = relationship("User", backref=backref('permissions'))
permission_type = column(String())
object = #The object the permission applies to, could be any type.
我想只是一个非常简单的例子会很感激!
另外,值得注意的是我来自 Django 背景!
谢谢
【问题讨论】:
-
“没有另一张桌子”是什么意思?你能更好地定义你的 SQL 模式是什么样的吗?
-
对不起,我应该让自己更清楚。没有另一个表,我的意思是有一个单独的表来存储通用关系。
-
这是一篇旧博客文章,其中包含旧模式,但第一个示例“rails 是如何做到的”也是 django 方法 - 它放弃使用传统外键以绕过需要一张额外的桌子。但是为什么仅仅为了保存表而错误地构建架构如此重要?
标签: python database sqlalchemy