一对一多态关系与无关系-Ruby on Rails

时间:2019-01-30 13:58:22

标签: ruby-on-rails postgresql model ruby-on-rails-5

我正在尝试优化数据库设计,以使其易于使用和快速查询。哪个被认为是更好的数据库设计和更有效的?我想很好地扩展并防止随着数据库变大而变慢。我正在使用Postgres。所有这些关系都是一对一的关系。

模型/表格:

Cars 
Trucks 
Boats 
Planes

用例A:

一种搜索表单,可查询所有4种表格类型(汽车,卡车,船只和飞机)在特定位置半径内的所有记录。

用例B:

一种搜索表单,用于查询1个表(汽车,卡车,船只或飞机)中某个位置的特定半径内的所有记录,但还具有对该表/模型的特定查询参数。

设计问题:

推荐哪种设计?是否推荐其他替代设计?

设计1:

4个表,具有7个与地址相关的公共字段,包括经度和纬度字段,以及每个表唯一的50个字段。每个表还具有另一个公共字段“概述”,它是一个文本字段。

地址和概述字段始终为必填项。

设计2:

1个地址表(7个字段)-与汽车,卡车,船只和飞机的1:1多态关联

4个表格(汽车,卡车,轮船,飞机)每个表格都有50个字段,其中包括所有表格共有的“概述”文本字段。

地址和概述字段始终为必填项。

设计3:

1个地址表(7个字段)-与汽车,卡车,船只和飞机的1:1多态关联

4个表(汽车,卡车,船,飞机),每个表有50个字段。

1个概览表,其中具有与汽车,卡车,船只和飞机的1:1的多态关联

地址和概述字段始终为必填项。

设计4

1个带有(7个地址字段和一个JSONB字段)的Vehicle表。 JSONB字段将存储所有自定义字段。

0 个答案:

没有答案