Cada um user
está exatamente em um team
. Uma equipe tem exatamente um usuário na team_lead
função. Como podemos normalizar isso no banco de dados? Exemplos em pseudo-SQL:
Estratégia 1:
table user:
id int pk
team_id int fk references team(id)
is_lead int //1 or 0
table team
id int pk
Problema: vários usuários em uma equipe podem ser marcados como o líder da equipe
Estratégia 2:
table user:
id int pk
team_id int fk references team(id)
table team
id int pk
team_lead_id int fk references user(id)
Problema: não há garantia de que o líder de equipe referenciado seja realmente um membro dessa equipe
Existe alguma maneira de normalizar isso no design do banco de dados ou temos que usar restrições ou impor no front-end?