2016-08-04 10 views
1

Ich bin auf einem System arbeiten, in dem ich eine Tabelle hava Student Sprachen Kompetenzen für die Speicherung dieser verwalten wir die folgende Architektur erstellt: Viele zu viele Beziehung Optimierung

die Tabelle STD_LANGUAGE_COMPETENCIES ist die assoziative Einheit darstellt. einer viele zu viele Beziehung zwischen der STD_LANGUAGE (Französisch, Englisch, Arabisch ...) Tabelle und STD_LANGUAGE_SKILL (Lesen, Sprechen, Schreiben, Lehren) das Problem ist, dass STD_LANGUAGE und STD_LANGUAGE_SKILL nicht von einem normalen Benutzer des Systems aktualisiert werden (Schüler) werden sie vom Systemadministrator hinzugefügt, und wenn ich versuche, Sprachkompetenzen für einen Schüler zu holen, verpflichtet mich die Architektur, an zwei Tabellen teilzunehmen, um den Namen der Sprache und den Namen der Fähigkeit zu erhalten. gibt es sowieso, um dieses Schema zu optimieren.

+0

Haben Sie eine Ansicht erstellt? –

+0

Ich baue eine API –

Antwort

2

Wenn die Sprachkenntnisse zum Beispiel sind: "Lesen", "Schreiben", "Konversation", usw., ohne Namen, ohne Zeitbegrenzung für Fähigkeiten und Management-Client-Module, können Sie die Beschreibung direkt eingeben Fügen Sie in der Tabelle STD_LANGUAGE_COMPETENCE die Fremdschlüsseleinschränkungen hinzu, während Sie die Skill-Tabelle für Combo-Elemente beibehalten, die Sie zuweisen oder nach Text durchsuchen möchten.

Auf diese Weise können Sie einen Join vermeiden ..

0

Wenn Sie ein zu viele Beziehung haben oder viele zu viele Beziehung. Sie können nicht vermeiden, dass Join der Normalisierungsstruktur in SQL folgt.