用于监控系统(IoT)的Django模型构建

时间:2017-12-18 18:02:21

标签: python mysql django django-models django-rest-framework

我正在建立一个物联网项目,其设备将捕获气候数据(如气象站)。我使用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的学生和新手。

0 个答案:

没有答案