我有一个类型为MyEntity
的数据存储区实体,我希望有时会使用StringID
个密钥,有时会使用IntID
生成的AllocateIDs
个密钥。
我可以安全地混合使用字符串和整数ID,而不必担心字符串ID会偷偷覆盖AllocateIDs
生成的整数ID,反之亦然吗?
我问的原因是因为我假设字符串和整数ID使用相同的索引。是否可能意外地将表示字符串ID的字节序列与表示同一索引上的整数ID的字节序列相同?或者是以某种方式命名空间的字符串和整数ID以防止冲突?
答案 0 :(得分:1)
是的,你可以安全地混合String&相同类型的内部ID - 只有相同的密钥(实体)不能同时使用两者。没有重叠的危险。我想他们会使用类似protocol buffers的内容将密钥序列化为[]byte
。
我在生产中使用它没有任何问题。
虽然它可能不是最好的设计,但它实际上取决于你的情况。