-1

我正在尝试为水务部门的在线系统建立一个数据库,跟踪每个帐户/仪表的所有过去使用情况。
数据库收到一个包含当天所有读数的 csv 文件。我收到的 csv 具有以下数据:

  • 帐号(一个帐户上可能有多个计量器/地址)
  • 地址
  • Meter ID(可能有多个端口用于公寓大楼、商业建筑等)
  • 端口号
  • 阅读(数字)
  • 阅读日期(字符串)
  • 仪表序列号(与仪表 ID 相关)
  • 安装日期(与仪表 ID 相关)

我开始考虑数据库设置,据我所知:

  • 仪表信息
    • 仪表 ID(主键)
    • 仪表系列
    • 安装日期
    • 地址
    • 端口数
  • 仪表使用情况(标题为我的仪表 ID)
    • 阅读日期
    • 阅读

我在想每个仪表都有自己的表,该表名为仪表 ID,这将使访问一米的过去数据变得容易,但带来了按端口分隔的问题。

下面,我将如何区分meter# 000003 的端口? 一个想法是将端口号附加到仪表 ID# 的末尾, 即具有 0000031 和 0000032

所以我的主要问题是,处理一个可能有多个端口的仪表和一个可能有多个仪表的帐户,它可能有多个端口。

这将是我建立的第一个非伪数据库,因此非常感谢你们的任何帮助。

4

2 回答 2

1

继续@Roger 的思考过程,如果不能将端口号拆分为单独的帐户#,则许多人不需要端口号,但是您应该有一个帐户表,其中帐户号是 PK 并且喜欢您的仪表表,也许是一个地址表,尽管如果您计划使用地址表作为仪表表指向的地址表,这可能会变得复杂。另外,如果我是正确的,您的仪表序列号应该是唯一的,因此您可以将其用作主键,而不是创建自动递增的 PK 此外,您不一定需要为每个仪表使用一个新表,您可以简单地使用 MeterUsageTable一个名为 UsageID 的 Auto inc PK,带有仪表 ID 的 MeterID 读取日期和读取以及简单的查询将能够为您提供所有历史记录。尽管如果您要进入一家公司完整的使用历史记录,它将增加大量数据。编辑:我认为您希望您的数据库看起来像这样,您可以调整您需要和不需要的内容,但这是我认为您需要的关系,以便从 AccountNumber 转到使用 可能的解决方案

于 2012-08-09T03:56:50.923 回答
0

根据评论,我会提出以下建议:

帐户

仪表

id account_id serial_number 安装日期地址

仪表端口

Meter_id

读数

Meter_port_id reading_date 读数

就地址而言,我不确定您是否会支持多个城市、州、邮政编码。如果愿意,您也可以考虑对其进行规范化,以使您能够对某些邮政编码、城市等进行分组。

于 2012-08-09T03:38:41.157 回答