PythonPeewee:一个模型多个表
我目前正在使用Peewee在Python上实现SQLite,但我不知道如何对多个表使用单个模型。我需要为不同的表使用相同的模型的原因是每个表都有大量的行。我需要在它们之间执行PythonPeewee:一个模型多个表,python,sqlite,peewee,Python,Sqlite,Peewee,我目前正在使用Peewee在Python上实现SQLite,但我不知道如何对多个表使用单个模型。我需要为不同的表使用相同的模型的原因是每个表都有大量的行。我需要在它们之间执行join() 我在SO中搜索了类似的问题(如以下),但它们并没有真正解决我的问题: 我的简化用例: from peewee import * database = SqliteDatabase('test.db') class BaseModel(Model): class Meta: d
join()
我在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,然后我想比较每个重叠学生(注册两门课程的学生)这两门课程的分数
在不改变数据库模式/结构(由于向后兼容性)的情况下,我应该如何着手解决这个问题?我遇到了一个类似的问题,即,我想从同一个模型创建多个表,并最终找到了解决方案
例如,如果要从单个模型创建多个课程
表,可以使用:
from peewee import *
database = SqliteDatabase('test.db')
class BaseModel(Model):
student = ForeignKeyField(rel_model=Student, to_field='id', unique=True)
score = IntegerField()
class Meta:
database = database
# Create Course 1
class Course1(BaseModel):
pass
# Create Course 2
class Course2(BaseModel):
pass
database.create_tables([Course1, Course2])
表Course1
和Course2
的结构相同