2016-08-04 4 views
1

Я работаю в системе, где я Хава таблицу для хранения языков студентов компетенций для управления этим мы создали следующую архитектуру: Многие ко многим оптимизации отношений

табличные STD_LANGUAGE_COMPETENCIES представляющему ассоциативную сущность. от многих до многих отношений между таблицей STD_LANGUAGE (французский, английский, арабский ...) и STD_LANGUAGE_SKILL (чтение, речь, письмо, обучение), проблема заключается в том, что STD_LANGUAGE и STD_LANGUAGE_SKILL не обновляются обычным пользователем системы (студент), они добавляются системным администратором, и когда я пытаюсь получить языковые компетенции для ученика, архитектура обязывает меня делать соединение на две таблицы, чтобы получить имя языка и имя навыка. есть все равно, чтобы оптимизировать эту схему.

+0

Вы считаете создание представления? –

+0

Я строю api –

ответ

2

Если языковые навыки являются, например, «чтение», «письмо», «беседа», ecc., Без согласования имен, без ограничения времени для навыков и модулей клиентского управления, вы можете прямо поставить описание в таблице STD_LANGUAGE_COMPETENCE и удалите внешние ключи ctraints, в то время как вы храните таблицу навыков для комбо-элементов для назначения или поиска (по тексту).

Таким образом, вы можете избежать объединения ..

0

Если у вас есть один ко многим отношений или многие ко многим. Вы не можете избежать объединения, чтобы следовать структуре нормализации в SQL.