我正在建立一个物联网项目,其设备将捕获气候数据(如气象站)。我使用Django进行服务器端功能和数据管理,使用django-rest-framework进行设备通信。我的问题是建立模型。这是我的models.py:
class Devices(models.Model):
deviceid = models.CharField(max_length=100)
devicesecretid = models.CharField(max_length=100)
longitude = models.DecimalField(max_digits=20, decimal_places=16)
latitude = models.DecimalField(max_digits=20, decimal_places=16)
def __str__(self):
return self.type + ' - ' + self.deviceid
class DeviceData(models.Model):
device = models.ForeignKey(Devices, on_delete=models.CASCADE)
requestid = models.PositiveIntegerField()
temperature = models.DecimalField(max_digits=5, decimal_places=2)
humidity = models.DecimalField(max_digits=5, decimal_places=2)
rain = models.DecimalField(max_digits=5, decimal_places=2)
sunlight = models.DecimalField(max_digits=5, decimal_places=2)
battery = models.DecimalField(max_digits=5, decimal_places=2)
co2 = models.DecimalField(max_digits=5, decimal_places=2)
added = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.requestid) + ' - ' + str(self.added)
使用我现有的代码,我正在构建2个表(如果我错了请更正),一个包含所有气象站(id,secretid,经度,纬度),另一个包含所有气象站捕获的数据。假设我们有10,000个工作气象站,每15分钟发送一次数据。这意味着一年之后,我们的表格将如下:
-Devices:10,000行,因为有10,000个设备
-DeviceData:350,400,000行,因为每年每天有15万个设备每隔15分钟发送一次数据(4 * 24 * 365 * 10,000)
实际上困扰我的是DeviceData中有很多行。这不是一个问题。有没有办法让表格专用于每个设备的数据。这将创建10,000个表。这是个坏主意吗?我还能做些什么吗?我错过了什么吗?提前谢谢。
Ps我正在构建它作为项目的学习目的。我是Django的学生和新手。