Как было отмечено в комментариях, пример в моем вопросе был упрощен и мог быть легко решен путем удаления country
из таблицы User
.
То, что я закончил, былодополнительная таблица, которая учитывает «зависимости» между страной и языком.
User
> id (PK)
> name
> linguistic_combo.id
Linguistic_Combos
> country.id (PK)
> language.id (PK)
Country
> id (PK)
> name
Language
> id (PK)
> name
Теперь у каждого пользователя есть комбинация языковой страны, которая будет действительной, и все допустимые комбинации находятся в таблице Linguistic_Combos
.
country.id
и language.id
в Linguistic_Combos
сформируйте составной первичный ключ.
По сравнению с моим первоначальным вопросом, на языке можно говорить в разных странах.