【问题标题】:Efficiently design Database system using design pattern使用设计模式高效设计数据库系统
【发布时间】:2015-08-26 18:36:25
【问题描述】:

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

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

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

现在另一件事是任何人都可以离开城市或/并且新人可以进入城市并拥有与其他人相同的权利,我的意思是新人可以成为这辆车的所有者。

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

任何建议将不胜感激。

【问题讨论】:

标签: sql database database-design relational-database database-schema


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-02-12
    • 1970-01-01
    • 2016-05-28
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 2015-11-03
    • 1970-01-01
    相关资源
    最近更新 更多