Ответ на этот вопрос в том, что это действительно зависит.Реляционные пуристы скажут, что это повторяющаяся группа, и это ужасный замысел, в то время как толпа быстрого и грязного толка скажет: «Если вы когда-нибудь будете поддерживать только 5 языков, то сделайте это».Но на самом деле - как вы можете быть уверены, что всегда будете поддерживать только 5 языков?И какие виды запросов вы будете делать?Представьте, что вы хотите найти всех людей, говорящих по-английски - ваш запрос будет:
select * from single_user_has_spoken_languages where lang1 = @englishID or lang2 = @englishID or... etc
Если вы хотите найти людей, говорящих по-английски и по-французски, то ваш пункт where снова возрастет.И каждый отдельный запрос должен будет измениться, если вы добавите шестой язык.
Рассмотрите альтернативный вариант:
select distinct UserID from single_user_has_spoken_languages where langID = @englishID
Как только вы остановитесь и подумаете о том, как ваши запросы будут работать, начинается хороший дизайнстать намного яснее.