我是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
,该表具有许多属性。 Item
和Person
可以可选地具有描述。
这就是我所做的:
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
关系不是。
这是正确的吗?如果是这样(令人怀疑),是否有更好的方法来解决问题?