c# - 创建唯一标识符,它是父标识符的可识别子标识符

标签 c# guid entity-relationship uniqueidentifier

在创建一组由 guid 标识的元素时,我选择使用与其父元素和兄弟元素 ID 共享其 ID 的前 12 个字符(6 个字节)的子元素。

例如:

Parent Id: df2f5d11-0b66-4407-8cf4-8877b954a273
Child Id: df2f5d11-0b66-349b-8527-1a6a79d2efce

我知道很多模型对相关实体使用类似的机制,所以我想知道是否有针对可识别的唯一标识符的最佳实践或约定。

我的实现是这样的:

var childId = new Guid(parentId.ToByteArray().Take(6).Concat(Guid.NewGuid().ToByteArray().Take(10)).ToArray());

-- 如果许多系统都使用类似的机制,这让我觉得有点笨拙。

有没有更好/更干净/更简单的方法?

最佳答案

我认为对 GUID 中字节的任何操作都会导致 Unique 和 Global 部分的中断。

如果你希望它是人类可读的,那么制作一个应用程序,显示 parent 和 child 之间的关系。

我能否提供指向消息来源的链接,说明这是实际使用的?

关于c# - 创建唯一标识符,它是父标识符的可识别子标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001662/

相关文章:

c# - 如何向已包含数据的数据表添加新列和数据?

c# - 使用 OpenCV 感知二维图像中长方体的尺寸(或突出点)

php - 我应该如何创建我的 GUID?

client-server - 为什么我不能信任客户端生成的GUID?将PK视为客户端GUID和服务器GUID的组合是否可以解决任何问题?

oracle - 如何使用 Oracle SQL Developer 打印实体关系 (ER) 图

c# - 将 Asp.Net WebApi 5.2.2 更新到 5.2.7 后捕获所有不工作的路由

c# - 如何使用 LINQ MVC 基于 AND 条件应用搜索过滤

c# - 将 Guid 添加到列表 <Guid> 导致错误 C#

python - Django:有什么区别(rel & field)

iphone - 访问一对一关系对象时崩溃 coredata/stackmob