8

我希望有一个Status在一些用户定义的设置后相对静态的模型(并且不同的用户可能有不同的状态值)。

该状态可以应用于不同的模型,例如ContactEvent

所以返回的状态contact.status将不同于event.status

我想设计应用程序,使状态表具有不同的类型(contactsevents)。

什么是正确的策略和格式?

我正在考虑:has_one StatusContact模型中声明,并将 a 存储:status_id:contacts表中。同上Event

:statuses表将具有状态值、类型和日期。

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

4

3 回答 3

9

关于这个问题有一个指南。您的情况略有不同,因为您的 Status 模型似乎确实需要多态,因为不同的事物将是“可状态的”。

要回答您的问题,Contact/Event has_one Status 对我来说确实有意义。

于 2010-07-09T23:33:57.243 回答
2

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

于 2013-11-15T00:35:21.533 回答
1

首先,has_one 关系不会在当前模型中存储 id。它在相对表中查找外键。为了将 status_id 存储在联系人或事件中,您将使用 belongs_to。

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

于 2010-07-09T23:33:36.847 回答