【发布时间】:2011-07-07 19:13:58
【问题描述】:
这更像是一个一般性的设计问题,但它将在 RoR 中实现,我对此非常陌生。另外,我认为这是我的第一个问题,所以请温柔:)
场景是:
我有一个资产模型。每个资产都位于一个特定的房间中,因此我还希望与 Location 模型建立一对多的关系。很简单。但是,某些房间(位置)也使用别名(例如 123 是又名图书馆)。当用户想要更新有关特定资产的信息时,我希望他们能够只搜索而不用担心他们是否知道确切的房间号,并显示该房间中的资产列表。
为了澄清,可能有多个别名。
所以问题是:
您会推荐一个 Location 将具有一对多关系的 Alias 模型吗?或者,自引用(某种分层)关联会更好吗?或者别的什么可能?根据我的设想,前者需要查询不同表上的列以获取相同类型的信息,而后者似乎不正确(别名与位置不同)。
【问题讨论】:
-
每个位置有 1 个或 0 个别名,还是更有可能?如果 1 或 0 是唯一的选项,请在“位置”模型中使用额外的字段“别名”(无论如何)。位置资产也是 1:n 而不是 1:1。一般来说:一个额外的模型,这里是“别名”,只有当您想使用该模型并专门为/使用它存储数据时。在这里它几乎没有意义。
-
啊,是的!感谢您指出了这一点。已更新 Q。
标签: ruby-on-rails database object-model