Sql 如何在Django中每天在数据库中创建新表
我有一个理解问题,因为我正在考虑如何管理Django或数据库中的数据 这是一个每天大约有2000行和8列的表。我想将过去10年的所有每日数据存储到数据库中,并每天添加新数据。为每天创建一个数据库表是个好主意。在Django中,将为每个模型创建一个表,但inventor不打算在Django中创建5000个模型Sql 如何在Django中每天在数据库中创建新表,sql,django,python-3.x,django-models,mariadb,Sql,Django,Python 3.x,Django Models,Mariadb,我有一个理解问题,因为我正在考虑如何管理Django或数据库中的数据 这是一个每天大约有2000行和8列的表。我想将过去10年的所有每日数据存储到数据库中,并每天添加新数据。为每天创建一个数据库表是个好主意。在Django中,将为每个模型创建一个表,但inventor不打算在Django中创建5000个模型 这是我使用原始SQL创建表的唯一方法吗?或者有没有我在文档中没有发现的方法?老实说,在Django中,每天一张表并不是最好的方式,因为它会使整个框架更难使用: 您需要每天创建一个新模型 您
这是我使用原始SQL创建表的唯一方法吗?或者有没有我在文档中没有发现的方法?老实说,在Django中,每天一张表并不是最好的方式,因为它会使整个框架更难使用:
- 您需要每天创建一个新模型
- 您需要每天进行迁移和迁移
- 或者您可以完全跳过使用ORM
class Meta:
indexes = [
models.Index(fields=['day',]),
]
手册对此进行了更详细的解释:对您提出的问题的简短回答是“是的,最快的方法是使用原始SQL”,或者是动态创建新模型并运行makemigrations 也就是说,在没有关于您的问题或任务的更多细节的情况下,我必须立即询问您为什么要动态创建表。对于初学者来说,这将使您失去Django提供的与模式的ORM连接,而无需更多的技巧(自动生成的模型、每日makemigration、迁移过程中潜在的错位数据、您的专用代码等)。一些想法:
class Meta:
indexes = [
models.Index(fields=['day',]),
]
谢谢你的解释。虽然每天的数据集有时比最初想象的要大,所以现在我在一个表中有大约1300万条记录,但这没关系。每天仅查询该表1-2次以进行计算和创建图形。它也只需要数据集的一小部分。速度不是很重要,所以在这种情况下,这是最好的解决方案。