【问题标题】:Structurizing issue MySQL and Python结构化问题 MySQL 和 Python
【发布时间】:2017-05-25 14:47:22
【问题描述】:

好的,所以我的问题是一个计划问题,而不是一个实际的“错误”类型的问题,我向你们寻求如何最好地构建我的项目的想法!

这就是我的工作。

我有一个 MQTT 服务器(我相信是 v3.1.1)正在运行,设备连接到该服务器。服务器还运行了一个 Python (v2.7) 脚本,该脚本将发出连接设备必须响应/运行的命令。

有一些常量和很多变量。它们如下:

  1. 设备具有唯一的序列号(在连接到 MQTT 服务器时传送)。

  2. 设备 IP(甚至是 MQTT 服务器的 IP)是动态的。你问他们如何连接?它总是 xx.xx.xx.250。所以我让他们搜索他们的子网并连接到 .250。

  3. 设备将获得(某种注册过程)一个 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


    【解决方案1】:

    这个问题:当它的 IP 发生变化时(无论出于何种原因),我最终会得到重复,这是我根本无法拥有的,有没有办法防止这种情况发生? p>

    您只需要一个唯一的密钥,即序列号。当您发现序列号已经在数据库表中时,更新状态 IP。这样,您将始终拥有当前 IP。如果您需要旧 IP 的记录,请创建另一个表,即历史表。此历史记录表可以有多个相同序列号的条目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      相关资源
      最近更新 更多