(可选)从多个其他表中引用一个表

时间:2019-02-14 09:43:53

标签: python sqlalchemy flask-sqlalchemy

我是Flask和SQLAlchemy的初学者,我一直陷在应该是一个非常简单的问题上。

我的应用程序包括以下两个表:

class Item(db.Model):
    id = db.Column(UUIDType(), primary_key=True)
    # more columns

class Person(db.Model)
    id = db.Column(UUIDType(), primary_key=True)
    # more columns

为简便起见,已删除了不必要的列。我需要添加第三种表Description,该表具有许多属性。 ItemPerson可以可选地具有描述。

这就是我所做的:

class Description(db.Model):
    id = db.Column(UUIDType(), primary_key=True)
    text = db.Column(db.BLOB, nullable=False)
    # some other properties

class Item(db.Model):
    id = db.Column(UUIDType(), primary_key=True)
    description_id = db.Column(UUIDType(), db.ForeignKey('tags.id'), nullable=True)
    description = db.relationship('Description')

class Person(db.Model)
    id = db.Column(UUIDType(), primary_key=True)
    description_id = db.Column(UUIDType(), db.ForeignKey('tags.id'), nullable=True)
    description = db.relationship('Description')

我不确定这是否是解决问题的正确方法,尤其是因为description_id列为可空但description关系不是。

这是正确的吗?如果是这样(令人怀疑),是否有更好的方法来解决问题?

0 个答案:

没有答案