Database design 如何优化此数据库设计?

Database design 如何优化此数据库设计?,database-design,Database Design,我需要创建的数据库保存车辆跟踪系统的数据。因此,一些车辆不断向我的站点发送数据(大约20个参数),这些数据存储在数据库中 车辆的参数包括车辆编号和硬件id为常量,其余参数不断变化。因此,从一辆车上看,这两个参数总是恒定的 我将在此数据库中有另一个表,其中包含用户的登录凭据,我希望在两个表之间创建一个链接,其中登录表中有车辆编号(主键),表中有参数 由于车辆编号列是多余的,我不能将其作为主键。 所以我想知道的是: 如何实现表之间的链接 是否有一个好办法,使我不存储此车辆号码和硬件id这么多次 我是

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

车辆的参数包括车辆编号和硬件id为常量,其余参数不断变化。因此,从一辆车上看,这两个参数总是恒定的

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

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

  • 如何实现表之间的链接
  • 是否有一个好办法,使我不存储此车辆号码和硬件id这么多次
  • 我是否应该将每辆车的数据存储在单独的表中,而不是全部存储在一个表中

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

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

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

    创建一个代理主键并使用它连接到车辆。单个用户可能有许多车辆,因此将外键从车辆表放到用户表中

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

    如果您的需求包括保存更改的历史记录,那么您应该重新考虑这个想法。既然你什么都没提,我就在这里猜测


    您提出的任何问题都不会对效率或应用程序速度产生任何影响。您没有提供足够的细节,不允许有人对您的设计产生影响。此时您犯了早熟优化的错误。

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

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

    创建一个代理主键并使用它连接到车辆。单个用户可能有许多车辆,因此将外键从车辆表放到用户表中

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

    如果您的需求包括保存更改的历史记录,那么您应该重新考虑这个想法。既然你什么都没提,我就在这里猜测


    您提出的任何问题都不会对效率或应用程序速度产生任何影响。您没有提供足够的细节,不允许有人对您的设计产生影响。你在这一点上犯了早熟优化的错误。

    看看这篇文章,它可能会帮助你有效地将信息存储在数据库中。如果有人想指出这个问题适合SE中的DBA站点,我觉得这是获得好答案的更好的站点,所以我把它放在这里。@Jacob:谢谢,我会阅读的。没问题。这篇文章的目的是在记录大量共享数据但将其拆分为表的信息时节省空间。交叉发布在DBA.se上查看这篇文章,它可能会帮助您有效地将信息存储在数据库中。如果有人想指出这个问题适合se中的DBA站点,我觉得这是一个更好的网站,所以我把它放在这里。@Jacob:谢谢,我会阅读的。没问题。这篇文章的目的更多的是在记录大量共享数据但将其分成表的信息时节省空间。这些是你提出的一些好观点。DuffyMo:请考虑重新回答这个问题,我是一个完整的数据库设计NOOB。这些是你提出的一些好观点。工作:DuffyMo:请考虑重新提交这个答案。