我们希望为每个用户提供一个别名,以便我们可以在讨论中引用它们,同时保护其身份。这些别名应该是唯一的。
简单方法就是简单地使用SERIAL列,但是int不容易记住。我们想使用真实的人名,以便我们记住别名。
其他简单方法将在某处查找名字列表,对其进行编号,并使用SERIAL从列表中获取名称。当列表用完时,添加更多名称。
但是有一些聪明的方法可以将整数映射到名称吗?
我们目前有大约2,000名用户并且正在增长,但我怀疑我们将成为Google。
答案 0 :(得分:7)
听起来可能很疯狂。但是游戏编程中使用了an algorithm来创建无意义的但是语音上独特的名称,如Alveolar,Bilabial,Glottal,Palatal,Velar。
答案 1 :(得分:5)
从the Census Bureau's names file中选择一个随机名称。
答案 2 :(得分:1)
你试过Hash functions吗?我不确定它们是否适用于Postgres。但是,是的,一种方法是让内部哈希函数照顾。他们将输出唯一的ID。
答案 3 :(得分:0)
回到“当天”Compuserve(或者它是AOL?)用于通过两个单词列表并从每个列表中取一个单词并将它们组合在一起来发出临时的初始密码,这样你就可以获得像EasyTomato这样的东西管他呢。也许这样的东西适用于您的用户群。如果每个单词列表有256个字符,那就是65535个唯一组合(并注意通过增加16位整数来选择组合是多么容易)。
编辑:毕竟不要直接增加整数,或者前256个人都会得到相同的第一个单词,但基本的想法仍然是合理的。选择一个随机的,尚未使用的16位数字。高8位是第一个单词列表的索引,低8位是第二个单词列表的索引。