【发布时间】:2017-05-25 14:47:22
【问题描述】:
好的,所以我的问题是一个计划问题,而不是一个实际的“错误”类型的问题,我向你们寻求如何最好地构建我的项目的想法!
这就是我的工作。
我有一个 MQTT 服务器(我相信是 v3.1.1)正在运行,设备连接到该服务器。服务器还运行了一个 Python (v2.7) 脚本,该脚本将发出连接设备必须响应/运行的命令。
有一些常量和很多变量。它们如下:
设备具有唯一的序列号(在连接到 MQTT 服务器时传送)。
设备 IP(甚至是 MQTT 服务器的 IP)是动态的。你问他们如何连接?它总是 xx.xx.xx.250。所以我让他们搜索他们的子网并连接到 .250。
设备将获得(某种注册过程)一个 ID(称为:REGID),可以识别它们(因为序列号太难记住)遗憾的是,这不是一成不变的,这些可以是整数 (001) 或带有数字的变体 (A01) 或只是文本 (snoopy)。
结果,我的 MySQLdb 如下所示:
+----+-------+--------+----+--------+
+ ID + REGID + STATUS + IP + SERIAL +
+----+-------+--------+----+--------+
这是两难境地:
我正在尝试在 MySQLdb 上存储和保存准确信息,以显示在这些设备的页面上。
当设备登录时,它会检查 MQTT 并记录它的“IP”和“串行”。它的“串行”和“状态”被写入数据库(UPDATE WHERE IP=)
另一方面,当注意到序列匹配一个已经在数据库中的序列时,我会假设它在“regid”下注册并且只有“状态”被更新。
这个问题:当它的 IP 发生变化时(无论出于何种原因),我最终会得到重复,这是我根本无法拥有的东西,有没有办法防止这种情况发生?
我想过:
改为制作 2 个表:一张带有“serial”和“regid”(表:注册),一张带有“ip”、“status”和“serial”(表:设备),尽管这也不能保护我反对重复...
非常感谢任何帮助和/或建议,因为我想不出解决方案!
谢谢。
【问题讨论】:
标签: php python mysql data-structures