我正在为一个建筑监控系统设计数据库。有点像这样:有一栋楼。一座建筑物有多个区域,其中可以包含记录器或实时馈送传感器组。记录仪只有一个传感器,它的数据由手机收集,然后下载到系统中。
举个例子:
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
但遗憾的是,事情不是这样的。
那么,有没有更好的设计呢?
我希望这是有意义的..
谢谢,马克。
发布于 2010-08-29 00:27:09
这样怎么样?
具有子类关系的第二个结构...
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 datahttps://stackoverflow.com/questions/3591406
复制相似问题