【发布时间】:2011-12-07 07:58:17
【问题描述】:
在SO question 7531153 中,我询问了将 Django 模型一分为二的正确方法——使用 Django 的多表继承或显式定义 OneToOneField。
基于Luke Sneeringer's 评论,我很好奇将模型一分为二是否会带来性能提升。
我之所以考虑将模型一分为二,是因为我有一些字段将始终完成,而其他字段通常为空(直到项目关闭)。
将通常为空的字段(例如 actual_completion_date 和 actual_project_costs)放入 Django 中的单独模型/表中是否会提高性能?
分成两个模型
class Project(models.Model):
project_number = models.SlugField(max_length=5, blank=False,
primary_key=True)
budgeted_costs = models.DecimalField(max_digits=10, decimal_places=2)
submitted_on = models.DateField(auto_now_add=True)
class ProjectExtendedInformation(models.Model):
project = models.OneToOneField(CapExProject, primary_key=True)
actual_completion_date = models.DateField(blank=True, null=True)
actual_project_costs = models.DecimalField(max_digits=10, decimal_places=2,
blank=True, null=True)
【问题讨论】:
标签: django database-design django-models database-schema