0

我想创建一个名为的表user_ports,其中包含用户在数据库中打开的所有端口。

而不是将每个列称为“port_80”,“port_100”

我想知道是否可以将其输入到将被称为opened_ports数组的列中。

但是,如果我想打开所有 80 端口的用户,我该怎么做呢?

4

1 回答 1

1

据我了解,您只需要在 user_ports 表中有 2 列:user_id 将引用适当的用户,opened_port 将描述特定的打开端口。那么您可能应该将 (user_id,opened_port) 对声明为主键。有了这样的表结构,您可以通过以下查询选择打开 80 端口的用户的 id:

SELECT user_id FROM user_ports WHERE opened_port = 80;

您可以将用户打开的所有端口作为 CSV 存储在一条记录中,但这将:

  1. 需要额外的代码来处理这种诡计;
  2. 使您的数据库查询复杂化并减慢速度;
  3. 非规范化您的数据库(应该避免)。
于 2013-01-07T12:14:56.880 回答