【发布时间】:2017-05-22 22:02:34
【问题描述】:
我已经阅读了很多关于 polymorphic associations in Ecto 的内容,并且我同意在您的表之间拥有本机数据库引用是有利的观点。
然而,大多数时候多态 belongs_to 被引用,而不是相反 (has_many)。我仍然不确定如何正确处理它。
就我而言,它是关于 Phoenix 后端 API,我有一个 Page 模型,它有多个 Widgets。每个小部件都有自己的表和模型,因为它需要存储和返回不同的字段。假设我们有一个TwoColumnWidget 和一个ThreeColumnWidget,它们都有page_id 对Page 模型的引用。
我将如何理想地对此进行建模,现在我有一个中间 Widget 模型(带有数据库),它有一个用于每种可能的小部件类型的列,并选择其中一个列中存在 id 的那个。这对我来说感觉很 hacky,因为我必须在数据库中为每个需要同步的小部件存储额外的一行,以及为每个具体小部件获取正确的序列化程序/视图的麻烦。
由于我的域有很多这些类型的关系,我想找到一个更好的解决方案来简化进一步的开发。有什么指点吗?
【问题讨论】:
-
当你说“自带数据库”时,你真的是我一个完整的数据库,还是“自带表”?
标签: elixir phoenix-framework ecto