Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PythonPeewee:一个模型多个表_Python_Sqlite_Peewee - Fatal编程技术网

PythonPeewee:一个模型多个表

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

我目前正在使用Peewee在Python上实现SQLite,但我不知道如何对多个表使用单个模型。我需要为不同的表使用相同的模型的原因是每个表都有大量的行。我需要在它们之间执行
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
的结构相同