使用设计模式高效设计数据库系统

Efficiently design Database system using design pattern

我们在一个城市有N个人,一辆车。一个人可以成为这辆车的所有者,但条件是一次只能是一个人。我的意思是,如果有 5 个人,一次只能有一个人成为车主。

现在的问题是任何人都可以在任何时候成为这辆车的车主(我们可以用任何逻辑来决定,例如每天车主都可以改变,或者可能是一些更复杂的算法,但那不会'没关系,请记住,所有者在这个特定时刻发生了变化,并且在一段时间内仍然是所有者)

A owner from time T1 to T2
another Owner from T2 to T3
... so on.

现在还有一件事是任何人都可以离开这个城市OR/AND一个新人可以进入这个城市并且拥有与其他人一样的权利,我的意思是新人可以成为这辆车的主人。

我想为这个问题设计一个数据库,这样我就可以高效地查询所有重要的东西。例如
谁是这个时间戳的车主。? 谁是这段时间的车主? 最长时间保持所有者? 城市中的所有人都可以同时使用吗? 等等

如有任何建议,我们将不胜感激。

数据库设计中最大的问题之一是人们设计用户界面而不是数据的最终用途。当您有时间数据时,这是三重正确的。要正确设计它,您必须了解时态数据不是非规范化数据。它随着时间的推移存储历史记录。

我建议 table 包含汽车信息,table 包含车主信息,还有一个连接 table 包含 carid、ownerid 以及开始和结束日期.您可能还需要有关时间段的其他数据,例如注释或是否使用了保险或当时报告的有关汽车的问题等。我不知道报告您将拥有的各种使用情况的所有要求.但我知道在尝试设计之前,您需要与您的利益相关者交谈并找出报告需求。