在(postgresql)数据库中存储EUI-64地址的数据类型是什么?

5
什么数据类型适合存储EUI-64地址(用于ZigBee节点)?
EUI-64地址基本上有8个八位字节。据我所了解,它们不应被视为整数,尽管您可以将它们组成64位整数。因此使用bigint似乎是显而易见的选择,但不幸的是它们是“带符号”的,这会使事情变得有些混乱。
您可以使用numeric(8),但没有内置转换来表示十六进制(尽管您可以编写一个)。
您可以使用char(16),但这似乎很浪费空间。
所有这些选项都可用,但每个选项都有一点混乱。我想知道是否有人对此有任何想法或我没有考虑过的方法。我目前正在使用bigint,到目前为止工作正常。它使我能够使用“to_hex”表示地址,但除非我正确处理符号性,否则可能会遇到问题。
谢谢。

如果你正在进行算术运算或小于/大于比较,那么被“签名”的值才会成为问题。 - kyork
1个回答

1
我会为此编写自己的数据类型,使用 macaddr 的代码作为模板。

你能详细说明一下并提供一些示例代码吗?如果没有这些,你的回答就不是很有帮助。 - Tilo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接