【发布时间】:2011-11-19 23:12:09
【问题描述】:
我正在为一个新应用程序苦苦挣扎,其中我有一个用户模型,它与自身有多个关联。
例如,一个用户可以有学生/家长/管理员,但所有这些关联也是用户。
我的想法是创建一个连接模型,在其中指定关联 ID 和关联类型。不幸的是,我不知道如何实现。
任何帮助将不胜感激。
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby datamodel
我正在为一个新应用程序苦苦挣扎,其中我有一个用户模型,它与自身有多个关联。
例如,一个用户可以有学生/家长/管理员,但所有这些关联也是用户。
我的想法是创建一个连接模型,在其中指定关联 ID 和关联类型。不幸的是,我不知道如何实现。
任何帮助将不胜感激。
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby datamodel
当模型引用自身时,它是自联接。请参阅here. 和谷歌“自我加入”。
Re:需要“连接模型”吗?
答案:与“连接模型”相比,更好的术语是“多对多表”或“junction table”
仅当您的数据具有多对多关系时才需要多对多表。否则,您只需要一对一或多对一的关系。
“一个用户可以有学生” 关键问题是,一个学生可以同时拥有多个“用户”吗?如果是这样,那么您需要一个多对多表,否则不需要。
对于父母,您可以说用户正好有零个或一个父亲。如果是这样,则不需要多对多表。
已编辑:哎呀,我意识到我不再知道这种“冷”了。我必须尝试使用示例代码才能做到正确。不幸的是,我现在没有时间。我很抱歉。
【讨论】:
This Railscast 应该直接回答您的需求。
【讨论】: