生成唯一标识符,主要类似于 UUID,但具有名称空间检查
我正在设计一个数据库,该数据库可能会保存数百万条记录。每条记录只有几条数据(例如,大约十五个五十字符的字符串)。
不同的记录属于同一类对象,但来自不同的“源”;命名空间将捕获这种关系。例如,对象1属于命名空间1,对象12321属于命名空间2,等等。
我想为这些记录设计唯一标识符。
如果我使用 UUID 版本 5,生成附加到命名空间的 UUID 将很简单。但是,无法知道给定的 UUID 是否属于给定的命名空间。
然后我想到了一种类似于 Luhn 算法 的算法(用于信用卡号码的算法) )它检查一个数字是“正确”还是“不”。
你会怎么做呢?
要求:
- 所有 UUID 要求
- 能够检查 UUID 是否属于给定命名空间
I am working on the design of a database which will potentially hold millions of records. Each record will have only a few pieces of data (say, about fifteen fifty-character strings).
The different records belong to the same class of object, but from a different "source"; a namespace would capture this relationship. For instance, object 1 belongs to namespace 1, object 12321 to namespace 2, etc.
I want to design the unique identifiers for these records.
If I were to use UUID version 5, generating the UUID attached to the namespace would be trivial. However, there is no way of knowing wether a given UUID belongs or not to a given namespace.
Then I thought of an algorithm along the lines of Luhn's Algorithm (the one used for credit card numbers) which checks wether a number is "correct" or "not".
How would you go about this?
Requirements:
- All the UUID requirements
- Ability to check that a UUID belongs to a given namespace
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您将命名空间存储在同一个表中并为其建立索引,一个简单的查询将告诉您 uuid 是否存在于给定命名空间中。但 uuid 不应该是唯一的吗?所以重复项不应该存在。
If you store the namespace in the same table and index it, one simple query will tell you if the uuid exists in a given namespace. But aren't uuid suppodes to be unique anyway? So duplicates should not exist.