【发布时间】:2015-12-19 21:40:35
【问题描述】:
我正在重新实现我最初在 Phoenix 的 Rails 中编写的应用程序,用户可以在其中使用 PostgreSQL 的 JSONB 记录类型创建自定义字段。例如,我们有以下(简化表示)模式:
客户
- ID(整数)
- 客户端类型 ID (int)
- 名称(字符串)
- 信息(jsonb)
客户类型
- ID(整数)
- 名称(字符串)
自定义字段定义
- ID(整数)
- 客户端类型 ID (int)
- 键(字符串)
- 标签(字符串)
在 Rails 中,ActiveRecord 神奇地将 JSONB 转换为散列,这使我能够非常轻松地使用 JSONB 来存储一组无模式的自定义字段。
例如,每种客户端类型都可以定义不同的自定义字段,然后当我向用户显示信息时,我会循环遍历定义以获取键,然后使用键从 JSONB 文档中获取数据。
我试图找出一种使用 Ecto 来完成此任务的方法,看起来我应该查看嵌入式架构(我看到了一些很好的信息 here),但是我不认为从查看它我可以在运行时为此定义自定义数量的字段,可以吗?
我只是在寻求一些建议,因为到目前为止,这是我遇到的唯一一个几乎没有立即解决的真正障碍。
再次感谢,非常感谢!
【问题讨论】:
标签: elixir phoenix-framework ecto