gpt4 book ai didi

数据库设计问题

转载 作者:搜寻专家 更新时间:2023-10-30 20:21:42 25 4
gpt4 key购买 nike

我正在为楼宇监控系统设计数据库。它有点像这样:有一栋楼。建筑物有多个区域,其中可以包含记录器或实时馈送传感器组。记录器只有一个传感器,其数据由手机收集,随后下载到系统中。

例如:

Building:
+ Area1:
Cold room 1 (Logger)
Cold room 2 (Logger)
+ Freezer 1 (Live monitoring):
Live sensor 1
Live sensor 2

记录器的读数存储在数据库中,实时监控传感器也是如此,读数可以生成警报。

我的问题是记录器和实时监控传感器非常相似,但由于它们存在于层次结构的不同级别,我发现很难以看起来不错的方式建模。到目前为止,这是我想出的。这只是一个玩弄想法的模型,还有很多缺失:

http://thejunkroom.co.uk/~marks/db1.png

我知道有点乱..

很遗憾不能这样:

Building:
+ Area1:
+ Foo
Cold room 1 (Logger)
Cold room 2 (Logger)
+ Freezer 1 (Live monitoring):
Live sensor 1
Live sensor 2

那时它可能更像这样:

http://thejunkroom.co.uk/~marks/db2.png

可惜不是这样的

那么,有没有更好的设计呢?

我希望这是有道理的..

谢谢,马克。

最佳答案

怎么会有这样的东西?

具有子类关系的第二个结构...

Building
BuildingId pk
BuildingName
etc

Area
AreaId pk
AreaName
BuildIngId fk -> Building
etc

Location
LocationId pk
LocationType (LiveMonitor, Logger, Handprobe) pk
LocationName
AreaId fk -> Area
etc

LiveMonitorLocation
LocationId pk, fk -> Location
LocationType ConstantValue = LiveMonitor fk -> Location

LoggerLocation
LocationId pk, fk -> Location
LocationType ConstantValue = Logger fk -> Location


HandprobeLocation
LocationId pk, fk -> Location
LocationType ConstantValue = Handprobe fk -> Location

Logger
LoggerId pk
LocationId fk -> LoggerLocation
SensorId fk -> Sensor

Handprobe
HandProbeId pk
Locationid fk -> HandprobeLocation

Sensor
SensorId pk

LiveMonitorSensors
SensorId pk, fk -> Sensor
LocationId pk, fk -> LiveMonitorLocation

SensorReadings
SensorId pk, fk -> Sensor
ReadingUtc pk
ReadingValue data

关于数据库设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3591406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com