首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库设计问题

数据库设计问题
EN

Stack Overflow用户
提问于 2010-08-28 23:56:26
回答 1查看 203关注 0票数 2

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

举个例子:

代码语言:javascript
复制
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

我知道有点乱..。

很遗憾它不能是这样的:

代码语言:javascript
复制
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

但遗憾的是,事情不是这样的。

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

我希望这是有意义的..

谢谢,马克。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-29 00:27:09

这样怎么样?

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

代码语言:javascript
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3591406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档