【发布时间】:2017-10-10 22:41:43
【问题描述】:
我目前正在使用 Peewee 在 Python 上实现 SQLite,但我不知道如何将单个模型用于多个表。我需要为不同的表使用相同的模型的原因是每个表都会有大量的行。我需要在它们之间执行join() 操作,因此仅直接更改_meta.db_table 无济于事。
我已经通过 SO 搜索了类似的问题(如下所示),但它们并没有真正解决我的问题:
我的简化用例:
from peewee import *
database = SqliteDatabase('test.db')
class BaseModel(Model):
class Meta:
database = database
class Student(BaseModel):
name = TextField()
date_of_birth = DateField()
class Course(BaseModel):
student = ForeignKeyField(rel_model=Student, to_field='id', unique=True)
score = IntegerField()
假设我想制作多个相同型号的表Course(),例如Bio101 和 Bio201,稍后我想比较这两个课程中每个重叠学生(注册这两个课程的学生)的score。
我应该如何解决这个问题,而不实际更改数据库架构/结构(由于向后兼容性)?
【问题讨论】: