数据库表项主键(id)规定
# 数据库表项主键规定
>分组表、关系表主键(id)由数据库自增主键约束实现
## 数据库设备表项主键(id)的组成
数据库设备表项主键(id)组成包括`<雪花id(56位)><类别编号(4位)><序号(4位)>`
### 雪花id(56位)
是由server文件调用snowflake算法生成提交给数据库config文件的一串数字,长度为64位,但固定后8位为0保留给类别编号和序号。
### 类别编号约定(4位)
可使用的数字如下所示
|类别编号|含义|
|:-----:|:--:|
|0000|边端设备基础信息表|
|0001|边端设备硬件信息表|
|0010|边端设备软件信息表|
|0011|边端设备日志信息表|
|0100|边端设备认证信息表|
>注意进制问题
### 序号约定(4位)
同一个设备可能对应多个子表,因此需要额外添加序号位区分。
要求:建立时间序越晚,序号越大。
>由于仅提供4位序号,所以同一设备拥有同一类型子表的上限是16个。
## 具体例子
假设添加新设备时,该设备有以下信息需要添加:
- 1条边端设备基础信息
- 3条边端设备硬件信息
- 2条边端设备软件信息
- 1条边端设备日志信息
- 1条边端设备认证信息
假若server提供的雪花id的前56位为xxxx(二进制),那么对应的新表项主键id应该是:
- xxxx_0000_0000
- xxxx_0001_0000,xxxx_0001_0001,xxxx_0001_0010
- xxxx_0010_0000,xxxx_0010_0001
- xxxx_0011_0000
- xxxx_0100_0000