【问题标题】:Is it possible to create a single table for each model instance in Django?是否可以为 Django 中的每个模型实例创建一个表?
【发布时间】:2020-04-02 19:18:05
【问题描述】:

我有一个名为 Schedule 的模型。单个计划是一个大表,有 3 列,可能有 500 行。因此,每当用户保存计划的实例时,它只需要为该计划创建一个新表。

这不仅仅是 Django 特有的,你如何在数据库中处理它?

【问题讨论】:

  • 为什么需要新建表? 500 行并不是很多。
  • 我对一件事感到困惑?将所有这些存储在一张表中是否有效?或者将单个表分配给每个实例是否有效,因为每个实例本身就是一个表?
  • 有多少用户?每个用户有多少个计划?数据库可以轻松处理数百万行。每个用户 500 行不算什么。这取决于您的查询方式,如果您正确索引行应该没有问题。
  • 是的,只是建立了多对一的关系。只是想知道是否有更好的方法来处理它。谢谢大家。

标签: django database foreign-keys relationship


【解决方案1】:

除了 Schedule 模型之外,您还可以添加 ScheduleRow 模型,例如:

class ScheduleRow(models.Model):
    schedule = models.ForeignKey(Schedule, on_delete=models.PROTECT)
    row_number = models.PositiveIntegerField()
    column_1 = models.CharField(max_length=100)
    column_2 = models.CharField(max_length=100)
    column_3 = models.CharField(max_length=100)

您仍然可以在 Schedule 模型中存储每个计划的元数据,但最好将数据行存储为 ScheduleRows。

【讨论】:

  • 是的,我就是这么做的。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 2023-03-23
  • 1970-01-01
  • 2020-11-24
  • 2013-07-11
  • 1970-01-01
  • 2023-02-11
相关资源
最近更新 更多