首页 > 解决方案 > 如何编写与 Ecto 同时关联同一张表

问题描述

我有以下 2 张桌子。一个是 MEMBER 表。另一个是 ORDER 表。ORDER 表有 4 个引用,包括 updated_by 到 MEMBER.id。所有 id 都与 Member.id 关联。

------
MEMBER
------
 id
 name

------
ORDER
------
 id
 order_member_id
 delivery_member_id
 signed_member_id
 update_by

我像下面这样写了 order.ex。但是它不起作用。

defmodule Sample.Store.Order do
  use Ecto.Schema
  import Ecto.Changeset

  schema "orders" do
    field :name :string

    belongs_to :order_member, Sample.Store.Member
    belongs_to :delivery_member, Sample.Store.Member
    belongs_to :signed_member, Sample.Store.Member
    belongs_to :update_by, Sample.Store.Member
  end

使用ecto,是否无法与引用的表关联?如果是会员,应该是belongs_to :member, Sample.Store.Member

还是写SQL目录更简单?

我想知道是否可能。

谢谢!!

标签: elixirphoenix-frameworkecto

解决方案


尝试foreign_key设置

   belongs_to :order_member, Sample.Store.Member, foreign_key: :order_member_id
   belongs_to :delivery_member, Sample.Store.Member, foreign_key: :delivery_member_id

推荐阅读