1

mySQL中是否可以有一个多维表

我想根据他们的 ip、他们的用户代理和他们发送的会话令牌来记录用户。

像这样的东西:

ip1
    user-agent1
        session token1
    user-agent2
        session token2
        session token3
ip2
    user-agent3
        session token4

我想避免使用serialize(),因为我听说它会降低桌子的效率和便携性。

4

1 回答 1

2

不是你有一个多维表,而是多个表

表 ips

id INT
ip VARCHAR

表用户代理(将 UA 链接到 IP)

ip_id INT
useragent VARCHAR(2048) (some large value)

表令牌(将用户链接到令牌)

id
userid 
token

上述所有三个组件通过它们的id列链接在一​​起,形成一个标识会话的表。Multipleip_id可能与单个 关联token,而后者又关联多个可能的 UA 字符串。

这使得同一个 IP 可能存在相同的 UA 字符串,但具有来自同一个 IP 的多个不同会话令牌的可能性。

表会话

ip_id
token_id
于 2012-04-12T13:53:59.250 回答