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,用于无法推断关联的情况。