【发布时间】:2016-01-09 08:04:43
【问题描述】:
我有 2 张桌子:
用户:
id
username
password
unique_index username
(the schema has a has_many other)
其他:
id
user_id - references(:users)
foo
index user_id
(the schema has a belongs_to user)
在“其他”的变更集中我有这个
model
|> cast(params, @req, @opt)
|> foreign_key_constraint(:user_id)
此时我的假设是“其他”ecto 模型需要一个“用户”与之关联才能存在(这是我想要的)
但我的第二个假设是,如果我删除“用户”记录,那么所有关联的“其他”记录都将被删除(通过级联删除)
实际发生的情况是我在尝试删除“用户”记录时遇到了 Ecto.ConstraintError(我假设是因为有与该用户关联的“其他”记录)
那么我将如何让它以我想要的方式工作:
- 可以独立创建“用户”
- 可以创建“其他”,但必须属于“用户”
- 删除“其他”时不会影响其他任何内容
- 删除“用户”时,也会删除所有关联的“其他”记录
本质上是对用户的任何引用它的项目的级联删除
【问题讨论】: