【发布时间】:2017-02-20 11:09:13
【问题描述】:
所以我有一个 Django 模型,其中存储了 5 天的数据,因为数据量太大,我们必须删除所有超过 5 天的数据。该模型当前具有 Django 自动创建的自动递增 id 字段。这里的问题是它很快就无法生成足够大的主键。
理想情况下,我应该有一个复合主键,但 Django 还不支持这个。所以我在查看 unique_together 并想知道是否可以将其用作 pesudo pk 并删除自动递增 id,因为它并没有真正用于应用程序中的任何内容。
另一个选项是这个模块:django-compositekey,但我不确定它的支持程度如何?
在任何一种情况下,我都需要合并 4 列来创建唯一记录:
class MassObservations(models.Model):
time = models.DateTimeField()
star = models.ForeignKey('Stars')
property = models.ForeignKey('Properties')
observatories = (('1', 'London'),
('2', 'China'),
('3', 'United States'))
station = models.CharField(max_length=2, choices=observatories)
mass = models.FloatField()
class Meta:
unique_together = ('time', 'star', 'property', 'station')
关于如何处理数据/Django 表的任何其他想法?
【问题讨论】:
标签: django postgresql composite-primary-key