【发布时间】:2021-01-17 17:47:43
【问题描述】:
作为使用 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()
附:这是一种解决方法,因为 Django 不支持复合主键。否则可以将传感器和时间戳设置为复合主键。
【问题讨论】:
标签: python django orm timescaledb