数据表设计

此页面用于在选定的数据源里设计/维护业务存储表。建表完成后才能在「物模型存表」里把产品数据落到这张表。

三种建表方式

1、手工设计:从空白开始,逐个字段定义。
2、追加默认字段模板:一键加入常用的 6 个字段(id / device_sn / device_name / product_sn / report_time / create_time),快速搭骨架。
3、导入物模型字段:选择产品后,自动读取该产品的物模型字段并插入为列。
4、导入已有表:目标库里已存在的物理表,输入表名一键拉取结构落到平台元数据,不会重建表

页面入口

菜单:存储管理 → 数据表设计

img.png

列表说明
说明
表名物理表名,建表后不可修改
备注表的中文说明,写入物理表的 COMMENT
数据源该表所属的数据源名称
来源页面创建 / 导入
已建表是否已经在物理库中存在

新建表

操作步骤
1、点击 新建表,进入设计器对话框。
2、选择数据源、填写表名(建议小写下划线风格,例如 device_data)、备注。
3、点击 追加默认字段模板 添加内置字段(推荐)。
4、(可选)选择产品 → 点击 导入物模型字段,自动把物模型属性追加为列。
5、按需手动 新增字段 补充其它列。
6、点击 确定,系统会自动在数据库执行 CREATE TABLE

img_1.png

设计器字段表说明
说明
字段名物理列名,小写下划线风格
类型逻辑类型,平台自动按数据库方言转为物理类型
长度仅 STRING 生效;其它类型自动忽略
精度/小数仅 DECIMAL 生效
可空勾选表示允许 NULL,不勾选会加 NOT NULL
主键主键列。建议把 id 设为主键
默认值可选;写入数据时若该列无来源则使用此默认值
内置含义写入设备数据时会自动填充,无需在「物模型存表」里再配映射
备注写入物理列的 COMMENT
逻辑类型 → 物理类型对照表
逻辑类型MySQLPostgreSQL
STRINGvarchar(N)varchar(N)
INTintinteger
LONGbigintbigint
DECIMALdecimal(p,s)numeric(p,s)
BOOLtinyint(1)boolean
DATETIMEdatetimetimestamp
TEXTtexttext
JSONjsonjsonb
内置含义说明(重要)
内置值写入时填充内容
ID调用 MyBatis-Plus IdWorker 生成雪花 ID,等价于 @TableId(type=IdType.ASSIGN_ID)
DEVICE_SN设备 SN
DEVICE_NAME设备名称(从设备缓存读取)
PRODUCT_SN产品编码
REPORT_TIME设备上报时间
CREATE_TIME入库时间(服务器当前时间)
配置了内置含义的字段不需要在「物模型存表」里再做来源配置,平台会自动填。

追加默认字段模板

点击 追加默认字段模板 按钮,会自动加入下面 6 个字段(已存在的字段会自动跳过):
id (主键, 雪花 ID)、device_sndevice_nameproduct_snreport_timecreate_time

从产品导入物模型字段

操作步骤
1、在字段操作区下拉选择产品
2、点击 导入物模型字段 按钮。
3、系统读取该产品的全部物模型属性,按 identifier 作为列名、name/remark 作为备注、dataType 自动映射为逻辑类型。
4、与内置字段(id / device_sn / device_name / product_sn / report_time / create_time)或已添加列重名时自动跳过,弹窗提示哪些字段被舍弃。
物模型 dataType 映射规则
物模型 dataType逻辑类型
int / integer / shortINT
long / bigintLONG
float / double / decimal / numberDECIMAL(18,4)
bool / booleanBOOL
date / datetime / timestampDATETIME
struct / array / object / jsonJSON
textTEXT
其它STRING(255)

导入已有表(不重建)

适用场景:物理库里已经存在了一张表,希望平台把它纳管,但不要重新建
操作步骤
1、点击 导入已有表 按钮。
2、选择数据源、填写已存在的表名、可选备注。
3、点击 导入,系统通过 information_schema 反查表结构落入平台元数据。

img_2.png

注意事项
1、平台只读取列名/类型/可空/默认值/备注,索引、外键、触发器不会被读取,需要的话请在数据库自行维护。
2、导入后该表 来源 列显示 导入已建表 显示
3、之后在「物模型存表」中可以正常使用这张表。

编辑表(修改字段)

可以做的安全修改
1、加字段:直接在设计器表格里 新增字段,保存后系统执行 ALTER TABLE ADD COLUMN
2、改备注:列备注或表备注修改后会同步到物理表。
3、改非空:勾选/取消 可空,系统执行 ALTER COLUMN ... SET/DROP NOT NULL
破坏性修改(需要勾选确认)
1、删字段、改字段类型、改长度/精度都属于破坏性变更,可能导致数据丢失。
2、必须勾选**「允许破坏性变更(删字段/改类型)」**复选框后才能保存,否则后端会拒绝。

img_3.png

注意事项
1、数据源表名 在编辑时不可修改,需要换数据源/改表名时先删除再新建。
2、对于「来源=导入」的表,平台同样支持 ALTER;但要确认对外部库有 DDL 权限。

删除表

点击行 删除 按钮会弹出二次确认框,提供两个选项:
是(同时 DROP):删除元数据 + 在物理库执行 DROP TABLE数据会丢
否(仅删元数据):仅删除平台元数据,物理表和数据保留,可日后手动接管。

img_4.png

常见问题

Q:建表时报 Table already exists
A:物理库里已存在同名表,请改一个表名,或者改用 导入已有表 把它纳管。
Q:编辑表时把字段类型从 INT 改成 STRING 报错?
A:勾上「允许破坏性变更」再保存。MySQL 一般能成功转换;PostgreSQL 在数据无法 cast 到目标类型时仍会失败,需要先清理数据。
Q:物模型导入后字段名带大写字母怎么处理?
A:物模型 identifier 通常允许大小写,但数据库列名建议统一小写。导入后可以手动改字段名,再保存即可重命名(破坏性,需要勾选)。