Ruby on rails 我应该在RubyonRails中使用has_one还是belown_to?

Ruby on rails 我应该在RubyonRails中使用has_one还是belown_to?,ruby-on-rails,belongs-to,has-one,Ruby On Rails,Belongs To,Has One,我想要一个状态模型,在一些用户定义的设置之后,它将是相对静态的(不同的用户可能在状态上有不同的值) 该状态可应用于不同型号,如联系人和事件 因此,contact.status返回的状态将不同于event.status 我想设计应用程序,使状态表具有不同的类型(联系人和事件) 这方面的正确策略和形式是什么 我正在考虑声明:在联系人模型中有一个状态, 并在:contacts表中存储:status\u id。与事件相同 :状态表将包含状态值、类型和日期 这有意义吗?您能推荐一个更好的方法吗?首先,ha

我想要一个
状态
模型,在一些用户定义的设置之后,它将是相对静态的(不同的用户可能在状态上有不同的值)

该状态可应用于不同型号,如
联系人
事件

因此,
contact.status
返回的状态将不同于
event.status

我想设计应用程序,使状态表具有不同的类型(
联系人
事件

这方面的正确策略和形式是什么

我正在考虑声明
:在
联系人
模型中有一个状态
, 并在
:contacts
表中存储
:status\u id
。与
事件相同

:状态表将包含状态值、类型和日期


这有意义吗?您能推荐一个更好的方法吗?

首先,has\u one关系在当前模型中不存储id。它在相对表中查找外键。为了在您使用的联系人或事件中存储状态标识

其次,根据您存储在Status中的信息类型,为什么它需要是自己的单独表?为什么不在要在其上使用状态的每个模型中创建状态列?这里可能需要更多的信息。

有一个非常重要的问题。您的情况略有不同,似乎您的状态模型真的需要多态性,因为不同的东西将是“可状态的”


为了回答您的问题,联系人/事件有一个状态对我来说是有意义的。

只是为了在更一般的设置中完成回答,这可以驱动您的选择:
属于
在具有外键的模型中使用关联。

嗯……可能是。我似乎见过ERD的设置,其中某些相当标准化的属性往往是单独的表。正如我在上面提到的,状态值没有太大变化,似乎在它自己的表中也是这样,我的状态模型是多态的…我在上面编辑了它…我想知道我是否应该让事情变得简单,因为它似乎很难在上面搜索…比我想象的更难这不是真的。外键也可以用于has_many,用于无法推断关联的情况。