用于在SQLite数据库中存储日期/状态的高效数据结构?

时间:2017-05-22 16:39:42

标签: python django database sqlite data-structures

我使用 Django 1.10,Python 2.7, SQLite3 来构建一个跟踪对象状态及最后状态的Web应用程序改变。

例如,每24小时,用户将导入一个主机的开放端口列表(如下所示):

05/01/2017
==========
Host                Open-Ports
123.45.67.89        22, 80, 443
...                 ...

一个端口(或多个端口)可能会关闭一天:

05/02/2017
==========
Host                Open-Ports
123.45.67.89        443
...                 ...

我希望我的Django应用程序显示这些数据:

IPv4
   123.45.67.89
Ports
   22 [Closed on 05/02/2017]
   80 [Closed on 05/02/2017]
   443 [Open]

跟踪端口状态的最有效方法是什么?

目前,我有一个主机型号,其中包含以下字段:

  • IPv4地址(GenericIPAddressField)
  • 主机名(CharField)
  • 位置(CharField)

我应该添加哪些新字段(及其类型)来实现此目标?

此信息将存储在 SQLite3 数据库中。

我的SQL表应该如何设置?我应该如何比较日期以了解何时关闭港口?我今天需要两张桌子存储信息吗?昨天还有吗?

可能有100,000多台主机,所以我需要尽可能优化这种方法。

谢谢!

澄清

我需要保留关闭端口的日期。 所以,如果在第三天,我们有:

05/03/2017
==========
Host                Open-Ports
123.45.67.89        22, 443
...                 ...

然后我们会看到:

IPv4
   123.45.67.89
Ports
   22 [Open]
   80 [Closed on 05/02/2017]
   443 [Open]

80号港口仍然表示已于2017年2月5日关闭。

0 个答案:

没有答案