Wenn Sie beginnen, mehrere Viele-zu-Viele-Beziehungen hinzuzufügen, benötigen Sie mehr Tabellen, um die Informationen miteinander zu verknüpfen. Hier ist, wie ich das Problem angehen würde:
Hinweis Die IDs sollten alle eindeutige indizierte Spalten sein. Erwägen Sie die Verwendung von AUTO_INCREMENT
.
Tabelle 1: Enthält Benutzerprofilinformationen
| ProfileID |UserInfo |
|=======================|
| 0 | Info |
|-----------------------|
| 1 | Info2 |
|-----------------------|
Tabelle 2: Speichert die möglichen Sprachen
|LanguageID |LanguageName|
|========================|
| 50 | Python |
|------------------------|
| 51 | Java |
|------------------------|
und so weiter ...
Tabelle 3: Speichert die Profil-Links zur Sprache es
|ProfileID |LanguageID |
|========================|
| 0 | 50 |
|------------------------|
| 0 | 51 |
|------------------------|
| 1 | 50 |
|------------------------|
Jedes Mal, wenn Sie dem Profil eines Benutzers eine Sprache hinzufügen wollten, würden Sie einen Eintrag in dieser Tabelle erstellen.
Sie würden zwei weitere Tabellen für die Software hinzufügen, die ein Benutzer kennt. Eine Tabelle für alle möglichen Arten von Software und eine weitere, um die Links zu speichern.
Wenn Sie die Informationen abrufen möchten, würden Sie eine Operation wie das unten tun:
SELECT * FROM Table3
LEFT JOIN Table2
ON Table3.LanguageID = Table2.LanguageID
WHERE ProfileID = [TheProfileIDToSearch]
Diese Struktur verwendet JOIN Tabellen miteinander zu verknüpfen sofort Informationen aus mehreren Tabellen zurückzukehren. Hier ist eine W3Schools kurze Erklärung über SQL JOINS
.
Sie benötigen 5 Tabellen, da Sie zwei verschiedene Viele-zu-Viele-Beziehungen pflegen müssen. Ich nehme an, dass ein Benutzer mehrere Sprachen kennt und mehrere Software-Tools verwendet. –
Was wäre die 5? Ich dachte nur Profil, Sprachen, Software – BBDev