gpt4 book ai didi

python - 使用多个表中的数据的唯一约束(SQL/SQLAlchemy)

转载 作者:太空狗 更新时间:2023-10-29 21:10:24 24 4
gpt4 key购买 nike

一个名为 Parametric 的顶级类用于创建可以具有与之关联的参数的对象:

class Parametric(object):
def __init__(self, name):
self.name = name
self.pars = []

class Foo(Parametric):
def __init__(self, name, prop):
self.prop = prop
Parametric.__init__(self, name)

class Bar(Parametric):
def __init__(self, name, prop):
self.prop = prop
Parametric.__init__(self, name)

我将 SQLAlchemy 用于我的 ORM 引擎。

我想施加一个 UNIQUE 约束,以确保组合(name, prop)对于给定类是唯一的(例如,仅Foo 的一个实例可以称为 "my_foo" 并且具有一个 prop 值,比方说 "my_prop") ,但我看不到如何从 FooUNIQUECONSTRAINT 部分的 Parametric 中引用 name 列。

这种唯一性是否可以通过 FOREIGN KEY 指令强加?

最佳答案

您可以使用 single table inheritance 来做到这一点.但是,如果您的两列位于不同的表中,您将无法完全您想要执行的操作(不可能跨表执行唯一约束)。

如果单表继承不是一个选项,您可能想要 (1) 在 python 中强制唯一性,或者 (2) 放弃 sqlalchemy 继承,并且只使用外键将 Foo 和 Bar 链接到 Parametric。您可以将外键指向 name,然后对 nameprop 进行唯一约束。

关于python - 使用多个表中的数据的唯一约束(SQL/SQLAlchemy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3535221/

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