我想有一个Status模型,它在一些用户定义的设置后将是相对静态的(不同的用户可能有不同的状态值)。
该状态可以应用于不同的型号,例如Contact和Event。
因此,contact.status返回的状态将与event.status不同
我想设计的应用程序,以便状态表有不同的类型(contacts和events)。
正确的策略和格式是什么?
我正在考虑在Contact模型中声明:has_one Status,并将:status_id存储在:contacts表中。Event也是如此。
:statuses表将包含状态值、类型和日期。
这有意义吗?你能建议一个更好的方法吗?
发布于 2010-07-10 07:33:57
这是一个关于guide on this的问题。你的情况略有不同,因为你的状态模型似乎真的需要多态,因为不同的东西将是“可统计的”。
回答您的问题时,Contact/Event has_one状态对我来说是有意义的。
发布于 2013-11-15 08:35:22
只是为了在更一般的设置中完成答案,这可以驱动您的选择:在具有外键的模型中使用belongs_to关联。
发布于 2010-07-10 07:33:37
首先,has_one关系不在当前模型中存储id。它在关系表中查找外键。为了在联系人或事件中存储status_id,您可以使用belongs_to。
其次,根据存储在状态中的信息的类型,为什么需要有一个单独的表?为什么不在要使用状态的每个模型中创建一个状态列?这里可能会有更多有用的信息。
https://stackoverflow.com/questions/3217067
复制相似问题