Hello. I’m not sure which way of defining table is better.
What I’d like to do
I’d like to define a teams table.
It should have name, size, and members which should have array of user_id. I have defined users table.
Implementation
So I think the migration file should be like
def change do
create table(:teams) do
add :name, :string, default: ""
add :members, {:array, :integer}
add :size, :integer
timestamps()
end
end
But in the table, members does not refer users table. So I’m wondering that it’s better to define teams and members.
teams
def change do
create table(:teams) do
add :name, :string, default: ""
add :size, :integer
timestamps()
end
end
members
def change do
create table(:members) do
add :team_id, references(:teams, on_delete: :delete_all)
add :member_id, references(:users, on_delete: :delete_all)
timestamps()
end
end
Which do you think better?





















