elixir - Ecto中的多对多关系

标签 elixir phoenix-framework ecto

我有一个用户模型和一个聊天模型。直观上,多个人随时都可以属于同一个聊天组,每个人可以有多个聊天组。因此,聊天组必须属于多个user_id

我的聊天组和用户架构为:

schema "chatGroups" do
    field :name, :string
    has_many :messages, Message
    belongs_to :user, User

    timestamps
end

schema "users" do
    field :name, :string
    has_many :chatGroups, ChatGroup

    timestamps
end

有什么建议如何处理吗?

最佳答案

这是一个古老的问题,以前接受的答案不再是事实。

Ecto现在支持HABTM或多对多关联。

https://hexdocs.pm/ecto/Ecto.Schema.html#many_to_many/3

many_to_many :users, MyApp.User, join_through: "chat_group_users"

关于elixir - Ecto中的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32900114/

相关文章:

elixir - 为什么文件读取会因 STDIO 或 File.open 而异?

elixir - 离线构建十六进制注册表文件

elixir - 在 Ecto 中加载树状结构

postgresql - 如何使用 ecto 查询表达式在 3 个表之间连接和过滤

datetime - 在Ecto.DateTime和DateTime之间转换

erlang - 模式匹配 Elixir 记录 Aganist 结构

elixir - 如何正确地将任意路径重新路由到 Plug.Static 文件的文件?

sql-server - 将 Phoenix 应用程序连接到 MS SQL Azure 数据库

elixir - ecto add/3 默认无法正常工作

elixir - 如何在 elixir phoenix 的 eex 模板中使用 "with"语句