1

我需要创建的数据库包含车辆跟踪系统的数据。因此,有几辆车不断向我的站点发送数据(大约 20 个参数),并将这些值存储在数据库中。

车辆的参数包括车号和硬件id为常数,其余不断变化。因此,对于一辆车,这两个参数始终是恒定的。

我将在该数据库中创建另一个表,其中包含用户的登录凭据,我想在两个表之间创建一个链接,其中包含登录表中的车辆编号(主键)和包含参数的表中的车辆编号。

由于车辆编号列是多余的,我不能将其作为主键。所以我想知道的事情:

  1. 有什么办法可以实现表之间的链接
  2. 有没有什么好办法让我不用多次存储这个车号和硬件ID。
  3. 我应该将每辆车的数据存储在单独的表中而不是全部存储在一个表中吗?

PS:这是我第一次设计数据库,因为我一直只是一名程序员,所以期待好的建议。

4

1 回答 1

1

将车辆号码放入登录凭据可能是一个非常糟糕的主意。我不知道您的用户是谁,但我不想使用在我买卖汽车时强迫我更改登录名的网站。我的历史呢?我会失去这一切吗?

主键中的业务逻辑意味着糟糕的设计。

创建一个代理主键并使用它来加入车辆。一个用户可能有很多辆车,所以把 VEHICLE 表中的外键放到 USER 表中。

如果是 1:1,将车辆数据放在单独的表中是没有帮助的。它不会改变除两个值之外的所有值都在变化的事实。

如果您的要求包括保留更改历史记录,您会重新考虑这个想法。由于您没有提及它,我只是在这里猜测。

您提出的任何问题都不会对效率或应用速度产生任何影响。你没有提供足够的细节来让某人对你的设计产生一定的影响。在这一点上,你犯了过早的优化。

于 2012-09-17T10:33:17.243 回答