データ量が非常に多いため、5日間以上のデータをすべて削除する必要があるため、Djangoモデルには5日間分のデータが保存されます。モデルには現在、Djangoが自動的に作成する自動増分idフィールドがあります。ここで問題となるのは、かなり早く、大きなプライマリキーを生成できないことです。Djangoモデルがunique_togetherで、自動インクリメントIDなしのプライマリキー
理想的には、複合主キーがありますが、Djangoはこれをまだサポートしていません。だから、私はunique_togetherを見ていて、それをpesudo pkとして使用して、アプリケーション内の何にも使われていないため、自動インクリメントIDを削除することが可能かどうか疑問に思っていました。
もう1つのオプションはこのモジュールです: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のテーブルを治療する方法上の任意の他のアイデア?
をOKああ、それはありますかなり良い解決策です。より多くのストレージコスト? – moku
32ビット(4バイト整数)と128ビット(uuid)ですので、記憶容量は高くなります。 – chickahoona