【发布时间】:2013-04-30 12:16:11
【问题描述】:
我正在设计一个数据库并发现我不知道该怎么做,所以首先让我们用图像来说明部分 ER 图:
如你所见,我有以下内容:
- 设备产生 0:N 数据
- 生成的数据可以是不同的数据类型(例如, 设备可以同时产生温度数据和湿度数据 时间戳)
- 特定数据仅由 1:1 设备生成
- 1:N 设备和数据之间的关系。由于数据是一个 弱实体(没有设备就无法存在数据),我将有一个复合 由 ID_DEVICE 和 TIMESTAMP 形成的数据中的 PK(图中未显示)
- 由于特定数据只能是一种类型,因此我专门 “子类型”,从 DataType1 到 DataType10,如果是 DataType2 我 有另一个专业。显然,每个实体都有 不同的属性。
我认为要走的路是每个子类型,从 Data 实体继承 PK,因为只有 TimeStamp + ID_Device 无法区分一行是来自 DataType1 还是 DataTypeX。这意味着超类型 Data 实体不会变成表。
另一方面,如果我要为 Data 超类型创建一个表,我可以在特化关系中添加一个字段“type”,以便唯一标识每个数据行。
¿在这种情况下我应该如何处理? 既然我认为这两种选择都是正确的,那么哪一种提供更多的好处,为什么? 任何改进或建议都是允许的! :D
【问题讨论】:
-
你用什么工具来画图?
-
其实我是用笔和纸来做设计的。为了说明我的问题,我使用了 MS Visio
标签: database database-design entity-relationship