多个数据源用于提供大致相同的汽车数据。用户将能够查看和比较每个来源的汽车数据。
对于两种类型的汽车,三个数据源用于提供有关汽车的数据。三个数据源将始终相同。
对于其他类型的汽车,仅使用两个数据源。根据汽车的类型,一个数据源将根据15种不同的数据源而有所不同。其他数据源将保持不变(并且是上段中提到的三个数据源之一)。
对于给定类型的汽车,数据源可能具有关于其他数据源中不存在的汽车的数据(例如价格)。在某些情况下,一个数据源可能具有其他(两个或三个)数据源中不存在的汽车。
每辆车都需要在不同的数据源中映射到同一辆车。系统通常会确定映射。在某些情况下,管理员需要查看汽车数据并确定在不同数据源中引用的汽车相同。
我应该如何在关系数据库和OOP中对此进行建模?每个源车应该成为一个桌子/班级(例如KellyBlueBookCar)吗?或者我应该建模一个表/类,Car,带有DataSource列/字段?
答案 0 :(得分:0)
您的数据库至少有三个表,实际上还应该有更多表:
首先是汽车类型,它真的可以与更多的关系 - 包括品牌,型号,年份,也许修剪,选项包等。
第二个是您所谓的来源,您可能想要指定一个更具体的名称,例如car_data_provider等。
第三个包含实际数据,并且具有前两个的外键,以及您感兴趣的实际数据(价格等)。
查看OOP类,它实际上取决于与您的一般体系结构和用例相关的许多因素。如果您熟悉域驱动设计,那么Car Type会将自己建议为聚合根。无论如何,我会让Car Type成为包含源数据的丰富对象。