title: Ecto.Schema differences between nilify_all, nothing, and delete_all?
body: <p>I am defining a schema for my <code>user</code> and <code>role</code> models in Phoenix app. Role <code>has_many</code> users and user <code>belongs_to</code> a role. It seems like there are 3 different <code>on_delete:</code> options: <code>nilify_all</code>, <code>nothing</code>(default), and <code>delete_all</code>. </p>
  
  <p>When I look at <a href="https://hexdocs.pm/ecto/Ecto.Schema.html" rel="noreferrer">Ecto.Schema</a> page, I don't really find definition of what each does. </p>
  
  <p>What is the difference between <code>nilify_all</code>, <code>nothing</code>, and <code>delete_all</code> - when should I use each? </p>