案例:现需要对一些设备的信息进行存储,设备的类型包括“除湿机”、“空调”、“风机”,其中“除湿机”的数据包括“温度”、“湿度”、“除湿状态”;空调的数据包括“温度”、“状态”;“风机”的数据包括“电流”、“电压”、“状态”。在设计的时候要考虑到设备类型可能会增加,每种类型的设备的数据种类也可能会改变。
设计方案一: 将列数据转换为行数据存储
类型表:存储设备类型
Type
Id | Name |
1 | 除湿机 |
2 | 空调 |
3 | 风机 |
属性表:关联类型表,存储每种类型的属性
Property
Id | TypeId | Name |
1 | 1 | 温度 |
2 | 1 | 湿度 |
3 | 1 | 除湿状态 |
4 | 2 | 温度 |
5 | 2 | 状态 |
6 | 3 | 电流 |
7 | 3 | 电压 |
8 | 3 | 状态 |
设备表:关联类型表,存储设备信息
Device
Id | TypeId | Name |
1 | 1 | 除湿机1 |
2 | 1 | 除湿机2 |
3 | 1 | 除湿机3 |
4 | 2 | 空调1 |
5 | 2 | 空调2 |
6 | <