我将设计糟糕的SQLite数据库移动到Peewee ORM,并且遇到了以下情况找到一个好方法的麻烦。
我有一个DVD表来保存有关发布本身的所有信息,以及描述DVD状态的tw表。这两个表都有其状态的具体细节。 代码示例:
class DVD(BaseModel):
title = TextField()
# More info like this
class Sold(BaseModel):
date = DateField()
buyer = TextField()
class Onloan(BaseModel):
loaned = DateField()
back = DateField()
person = TextField()
如何正确地将一个状态表正确链接到DVD对象,以便我可以通过DVD.status访问状态数据?
答案 0 :(得分:0)
您可以添加外键。
例如,如果DVD只能有一个Sold
状态,您可以写:
class Sold(BaseModel):
date = DateField()
buyer = TextField()
class DVD(BaseModel):
title = TextField()
sold = ForeignKeyField(Sold, related_name='dvds')
另一方面,如果DVD可以多次借出,您可以写一下:
class DVD(BaseModel):
title = TextField()
class Onloan(BaseModel):
loaned = DateField()
back = DateField()
person = TextField()
dvd = ForeignKeyField(DVD, related_name='loans')