首页 > 开发 > 综合 > 正文

存储动态数据时,数据库的设计方法

2024-07-21 02:47:58
字体:
来源:转载
供稿:网友
存储动态数据时,数据库的设计方法案例:现需要对一些设备的信息进行存储,设备的类型包括“除湿机”、“空调”、“风机”,其中“除湿机”的数据包括“温度”、“湿度”、“除湿状态”;空调的数据包括“温度”、“状态”;“风机”的数据包括“电流”、“电压”、“状态”。在设计的时候要考虑到设备类型可能会增加,每种类型的设备的数据种类也可能会改变。设计方案一: 将列数据转换为行数据存储类型表:存储设备类型Type
IdName
1除湿机
2空调
3风机
属性表:关联类型表,存储每种类型的属性PRoperty
IdTypeIdName
11温度
21湿度
31除湿状态
42温度
52状态
63电流
73电压
83状态
设备表:关联类型表,存储设备信息Device
IdTypeIdName
11除湿机1
21除湿机2
31除湿机3
42空调1
52空调2
62空调3
73风机1
83风机2
93风机3
数据表:关联设备表,存储设备数据,但不包含具体的数据Data
IdDeviceIdCTime
11xxx
22xxx
详细表:关联数据表和属性表,存储设备具体的数据Detail
IdDataIdPropertyId
特点:标准的关系型数据库,设计好后基本不需要修改表的结构;在获取设备数据信息的时候,需要关联查询,当数据量较大时,会导致查询性能问题设计方案二:每种类型的设备新建一张表来存储类型表:存储设备类型和对应的表名Type
IdNameTableName
1除湿机ChuShiJi
2空调KongTiao
3风机FengJi
属性表:关联类型表,存储设备属性和列名Property
IdTypeIdNameColumnName
11温度WenDu
21湿度ShiDu
31状态ZhuangTai
42温度WenDu
52状态ZhuangTai
63电流DianLiu
73电压DianYa
83状态ZhuangTai
设备表:关联类型表,存储设备信息Device
IdTypeIdName
除湿机表:ChuShiJi
IdCTimeWenDuShiDuZhuangTai
空调表:KongTiao
IdCTimeWenDuZhuangTai
风机表:
IdCTimeDianLiuDianYaZhuangTai
特点:分表后,单表数据量会减少,单类型查询会很快;属性修改后需要修改相应的表结构,而且在查询前要先根据类型表和属性表定位查询位置设计方案三:使用分隔符把设备数据拼接后,存储到一列中类型表:存储设备类型Type
IdName
属性表:关联类型表,存储每种类型的属性Property
IdTypeIdName
设备表:关联类型表,存储设备信息Device
IdTypeIdName
数据表:关联设备表,存储设备数据,其中一列存储所有的具体数据Data
IdDeviceIdData
温度※湿度※状态
特点:查询方便,但需要对具体的数据进行相关的操作,比如统计分析时会很麻烦设计方案四:单表多列存储类型表:存储设备类型Type
IdName
1除湿机
2空调
3风机
属性表:关联类型表,存储每种类型的属性和列名
IdTypeIdNameColumnName
11温度c1
21湿度c2
31状态c3
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表