作为使用 TimescaleDB 的一部分,它需要时间戳作为主键(SensorReading 中的时间),我需要处理不同传感器值使用相同时间戳的情况。一个优雅的解决方案可能是涂抹碰撞时间戳(在碰撞时添加一微秒)。
对于以下模型,如何以稳健且高性能的方式解决这个问题?
class Sensor(models.Model):
name = models.CharField(max_length=50)
class SensorReading(models.Model):
time = models.DateTimeField(primary_key=True, default=datetime.now)
sensor = models.ForeignKey(Sensor, on_delete=models.CASCADE)
value = models.FloatField()
PS 这是一个解决方法,因为 Django 不支持复合主键。否则,可以将传感器和时间戳设置为复合主键。
收到一只叮咚
侃侃尔雅
蝴蝶不菲
相关分类