【问题标题】:Is a primary/foreign key concept available in Java?Java 中是否提供主键/外键概念?
【发布时间】:2013-08-26 02:14:33
【问题描述】:

在我的 java 程序中,我查询一个数据库并获得一个结果集。检索到的字段如下:

  • server_id
  • threat_level
  • client_id
  • 攻击次数

其中每条记录代表来自某个 IP 的攻击。我不需要 IP,但想知道基于威胁级别沿 x 轴绘制的特定服务器上的攻击总数,以及特定客户端沿 y 轴组织的所有服务器上的攻击总数降序。

查询后,我将结果集的字段存储到对象的哈希图中,如果该键已存在,则检查哈希图后,键为 server_id;如果是,则更新攻击总数。通过这样做,我可以获取服务器的重复记录,将其保留为一个对象,并且只需汇总名为“num_of_attacks”的字段。现在我的下一步是组织数据以绘制图表的最后一步,但由于我的经验不足,我不确定正确的方法。我的数据库头脑告诉我使用字段 client_id 和 total_num_attacks 创建另一种类型的列表或集合,其中 client_id 是键,total_num_attacks 表示该客户端所有服务器上的所有攻击的总和,这可以以某种方式链接到 hashmap通过 client_id 的服务器。所以 client_id 是一组中的“主键”和另一组中的“外键”,这将允许我首先组织客户端,然后绘制他们的服务器。

我的问题是,这可能吗?我研究了 LinkedLists,但我不确定它是否能完全满足我的需求。还有其他更适合我需要的数据结构吗?

【问题讨论】:

  • 我认为这是一个数据库概念?
  • @AndroidKiller 是的,我想是的,但这有可能在 Java 中实现吗?
  • @solleks 在 Java 中你有对象而不是表,你可以将一个对象作为另一个对象的成员,这有点类似于外来键
  • 我没有阅读你的要求,但在 java Set 是一个集合,如果你可以使用它,它将只存储唯一值。
  • 是的,有可能。如果您只需要将服务器列表映射到客户端(我之前不明白),您可以使用 HashMap,其中键是客户端的 ID,值是包含服务器 ID 的列表。类似于:HashMap>

标签: java list data-structures hashmap


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-07
  • 2012-05-20
  • 1970-01-01
  • 2018-02-06
相关资源
最近更新 更多