2016-08-11 8 views
0

Ich versuche eine grundlegende Musikdatenbank für ein Schulprojekt zu erstellen. Ich möchte jedes Lied mit drei (3) anderen "ähnlichen" Liedern verbinden.Verknüpfen von Tabelleneintrag mit mehreren anderen Einträgen

Ich weiß, wie zwei Tabellen zusammen mit FOREIGN KEY verknüpfen, aber ich bin mir nicht sicher, wie Sie zwei Einträge innerhalb der gleichen Tabelle verknüpfen.

Die Programme Ich verwende sind phpMyAdmin und DBDesigner 4.

Vielen Dank im Voraus für jede Hilfe :)

+0

Sie müssen uns zeigen, was Sie bisher gemacht haben (Code, Datenbankschema usw.). –

Antwort

1

Vor allem, wenn die Gestaltung von Datenbanken, die Sie nie ‚auf„übernehmen wollen (3) "." Mit anderen Worten, Sie möchten keine "sich wiederholenden Gruppen", so dass das Datenbank-Design beschädigt wäre, wenn Sie jemals benötigt würden.

Für mich ist "is-aehnlich-zu" ein many-to-many Beziehung, die eine beliebige Anzahl von Songs aufzählen würde, die ähnlich sind, mit einer Struktur wie

SONG_ID_1, 
SONG_ID_2, 
DEGREE_OF_SIMILARITY (some kind of percentage ...?) 

Also, für jeden Song, dann würden Sie zu dieser Tabelle suchen alle Songs zu finden, die jemals aufgeführt wurden als " ähnlich wie "dieses Lied. Sie würden diese Tabelle mit einer INNER JOIN integrieren und bereit sein, mit einer beliebigen Anzahl von Übereinstimmungen umzugehen.

+0

Obwohl das ein guter Vorschlag ist, und etwas, das ich für zukünftige Projekte im Auge behalten muss, ist das, was ich mit diesen Informationen versuche, ziemlich einfach und benötigt nur drei Links. Ich werde (wenn ich schließlich lerne, wie) die Informationen in eine Webseite wie diese einbetten: http://puu.sh/qy7lU/cd3a1f02dc.png – Asteria

+1

Eine vernünftige Strategie könnte dann sein, eine vorzubereiten * gespeicherte Prozedur *, die diese Abfrage ausführt und sie verwendet, um drei Felder in einer anderen Tabelle aufzufüllen. Nun, natürlich, "es liegt ganz bei Ihnen", wie viel "Flexibilität" diese Anwendung will oder benötigt. Und es ist durchaus üblich, dass es "Berichtstabellen" wie diese gibt, in denen "komplizierte Abfragen" * einmal * durchgeführt werden, um kürzlich berechnete Zusammenfassungsantworten "augenblicklich" zu liefern. Es ist ein Balanceakt, voller technischer Kompromisse. Viel Glück! –

1

Sie suchen nach einer Beziehungstabelle, in der Sie die Song-ID zusammen mit der verknüpften Song-ID speichern.

Beispiel:

  • Tabelle Lied - ID PRIMARY KEY, NAME
  • Tabelle Song_Link - ID_SONG (aus Tabelle Song), ID_LINKED_SONG (aus Tabelle Lied)

Auf diese Weise können Sie speichern die Verbindung zwischen beiden Songs in einer Reihe.

Berücksichtigen Sie, dass die Verbindung in beide Richtungen geht.

+0

Ich werde es versuchen und sehen, wie ich gehe. Vielen Dank! – Asteria

Verwandte Themen