当前位置: 首页 > news >正文

【A11】统一实体标识符(UEID)规范

A11 数据同步系统 - ID 标识规范

一、核心设计哲学

1.1 设计原则

ID 设计原则 │ ├── 服务器统一分配原则 │ ├── 所有有效 ID 均由服务器生成 │ ├── 客户端不得自行指定有效 ID │ └── 客户端提交时 ID 字段可省略或填 0 │ ├── 符号语义分离原则 │ ├── 负数 → 机构/系统实体 │ ├── 正数 → 人员实体 │ └── 零值 → 未确认占位符 │ ├── 权限自然继承原则 │ ├── -1 代表 ROOT_ORG(根组织) │ ├── i64::MAX 代表 SUPER_ADMIN(超级管理员) │ └── i64::MIN 代表 DELETED_ORG(删除回收站) │ └── 排序天然有序原则 ├── 正数(人员)排在负数(机构)之后 ├── 同符号内权重小的优先 └── 权重相同数值小的优先

1.2 一句话理解

负数管组织,正数管人员,零是临时工,极值管全局


二、ID 分类总览

2.1 按符号分类

ID 符号分类 │ ├── 负数(-1, -2, -3 ...) │ ├── 实体类型:机构/系统实体 │ ├── 包含:Organization、Project、Team │ ├── 符号位:1 │ └── 特征:系统级实体,统一管理 │ ├── 正数(1, 2, 3 ...) │ ├── 实体类型:人员实体 │ ├── 包含:Person │ ├── 符号位:0 │ └── 特征:业务人员,身份绑定 │ ├── 零(0) │ ├── 实体类型:未确认占位符 │ ├── 权限:无任何权限 │ └── 用途:临时标识,等待服务器分配有效 ID │ ├── i64::MIN(-9223372036854775808) │ ├── 实体类型:删除回收站 │ ├── 符号位:1(机构类) │ └── 用途:已删除实体的归档容器 │ └── i64::MAX(9223372036854775807) ├── 实体类型:超级管理员 ├── 符号位:0(人员类) └── 用途:根组织(-1)的全权代理人

2.2 快速对照表

ID 范围/值符号实体类型权限特征
-1, -2, -3...机构/系统实体系统级管理
1, 2, 3...人员实体业务身份
0未确认占位符❌ 无任何权限
i64::MIN删除回收站🗑️ 归档容器
i64::MAX超级管理员👑 全局代理人

三、64 位 ID 位域结构

3.1 位域分配

64 位 ID 结构

位域符号位权重位数值位
位位置第 63 位第 62-48 位第 47-0 位
位数1 位15 位48 位
取值范围011~327670~2^48-1
默认值-10
语义0= 人员实体
1= 机构实体
排序权重(越小越靠前)唯一标识(0 保留给根/占位符)

位域分配速查表

位域位数位置用途取值说明
符号位163区分实体类型0=人员,1=机构
权重位1562-48控制排序1~32767,越小越靠前
数值位4847-0唯一标识1~2^48-10保留

四、取值对照表

位域最小值最大值默认值说明
符号位01-0=人员,1=机构
权重位1327671权重值
数值位02^48-10唯一标识,0 保留
组合(符号位=0)12^63-2-人员实体 ID 范围
组合(符号位=1)-1-2^63+1-机构实体 ID 范围

五、特殊 ID 位域解析表

特殊 ID符号位权重位数值位说明
0000未确认人员占位符,❌ 无任何权限
-1101系统根组织 ROOT_ORG
-2102普通机构实体示例
1011普通人员实体示例
i64::MIN100删除回收站 DELETED_ORG
i64::MAX011超级管理员 SUPER_ADMIN

六、排序规则表

优先级比较维度规则说明
1符号位正数(0)排在负数(1)之前人员实体排在机构实体前面
2权重位权重值小的排在前面同类型内,权重小者优先
3数值位数值小的排在前面权重相同时,数值小者优先

七、ID 操作函数示例

// 提取符号位(0=人员,1=机构)fnsign(id:i64)->i8{((id>>63)&1)asi8}// 提取权重位(15位,1-32767)fnweight(id:i64)->u16{((id>>48)&0x7FFF)asu16}// 提取数值位(48位,0-2^48-1)fnvalue(id:i64)->u64{(id&0x0000FFFFFFFFFFFF)asu64}// 判断是否为机构实体fnis_organization(id:i64)->bool{id<0&&id!=i64::MIN}// 判断是否为人员实体fnis_person(id:i64)->bool{id>0&&id!=i64::MAX}// 判断是否为根组织fnis_root_org(id:i64)->bool{id==-1}// 判断是否为超级管理员fnis_super_admin(id:i64)->bool{id==i64::MAX}// 判断是否为删除回收站fnis_deleted_org(id:i64)->bool{id==i64::MIN}

八、常量定义表

常量名称说明
SIGN_MASK0x8000000000000000符号位掩码
WEIGHT_MASK0x7FFF000000000000权重位掩码
VALUE_MASK0x0000FFFFFFFFFFFF数值位掩码
DEFAULT_WEIGHT1默认权重值
RESERVED_VALUE0保留数值(根/占位符)
i64::MIN-9,223,372,036,854,775,808删除回收站
i64::MAX9,223,372,036,854,775,807超级管理员
ROOT_ORG-1根组织 ID
UNCONFIRMED0未确认人员 ID
http://www.jsqmd.com/news/917958/

相关文章:

  • 苹果PICO编解码器:打破传统指标束缚,文件体积节省20%-40%!
  • 为什么92%的团队用Gemini生成报告仍被拒稿?——资深审稿人亲揭学术/合规双红线及5分钟修复法
  • AI生产力革命已迫在眉睫(2024Q3实测TOP 12工具效能排行榜)
  • Live Room Watcher:专业级直播间数据抓取框架深度解析与实战指南
  • Koodo Reader:打造你的专属个性化电子书阅读空间
  • 当Epson T3机器人遇上欧姆龙CJ2M:手把手教你用Fins TCP协议绕过Modbus限制
  • 赛灵思平台 lwIP 断线重连深度解析与实现指南
  • 015. UG 二次开发,拉伸草图生成实体类,高级草图类封装
  • 基于树莓派打造可定制数字时钟:从硬件选型到软件配置全解析
  • AutoDock Vina终极指南:快速掌握分子对接神器,轻松完成药物筛选
  • 5月26日每日60秒读懂世界:人口城市治理、劳动权益、医药监管与国际动态
  • 基于微信小程序的手工艺品交易平台的设计与实现
  • 别再为数据发愁:用Simulink批量仿真,为你的电力系统AI模型造一个专属数据集
  • 【Redis分布式缓存实战】第1章 分布式缓存前置认知:为什么企业首选Redis
  • UE5 Lumen流明引擎实战:手把手教你配置实时全局光照,告别漫长的光照烘焙
  • AI开发者最关注的5个Gemini能力盲区,92%团队尚未验证却已上线生产环境
  • 【Gemini市场调研报告】:2024全球AI大模型商用落地实测数据与7大关键趋势预警
  • 浏览器音乐解锁工具:5分钟实现跨平台音乐自由播放
  • 新手入门电子制作:从零焊接一台FM收音机套件全攻略
  • Cesium加载SuperMap WMTS服务报400?可能是你的tilingScheme没配对(附完整参数排查清单)
  • OpenClaw从入门到应用——CLI:Config
  • GsonFormatPlus深度解析:如何3分钟内实现JSON到Java对象的智能转换
  • 洛谷-P11240 [KTSC 2024 R2] 回文判定 题解
  • 强化学习在推理模型中的应用:DeepSeek R1训练策略拆解
  • 拍秋衣不用再找模特,AI上身图直出
  • 【系统学AI】15 RAG评测体系:RAGAS四维+TruLens+ARES全套方案
  • 数字员工整合AI销冠系统与AI提效软件系统,驱动企业运营效率与智能化发展
  • WEM:把“世界”和“自我”分开,具身世界模型才能走得更远
  • 3个关键步骤实现Silero VAD语音活动检测模型的高效部署
  • 3DS游戏存档终极保护指南:用JKSM轻松备份和恢复你的游戏进度