mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 07.12.2016 21:53 Benutzername: Passwort: Auto-Login

Thema: Verbindungspfad wie Xing in MySQL vom 22.01.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Verbindungspfad wie Xing in MySQL
Seite: 1, 2  Weiter
Autor Nachricht
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: Dortmund
Alter: 23
Geschlecht: Männlich
Verfasst Mo 22.01.2007 14:32
Titel

Verbindungspfad wie Xing in MySQL

Antworten mit Zitat Zum Seitenanfang

Mich würd rein interessehalber mal interessieren wie man eine Verbindungsstruktur wie Xing das bspw hat hinbekommt.
Also "User 1 kennt User 2 kennt User 3 kennt User 4".

Ich gehe davon aus das die Kontakte an sich alle in einer Tabelle gespeichert sind:
Code:
user_id | contact_id


Soweit sogut. Aber wie bekomme ich jetzt hin, wenn ich in der Kontaktetabelle stehen habe:
Code:
1 | 2
2 | 3
3 | 6

das mir mein SQL ne Struktur ausgibt wie 1 -> 2 -> 3 -> 6?

Im Chat sind wir darauf gekommen das das ganz natürlich bei vielen Kontakten und vielen Ebenen sehr sehr rechenlastig wird. Das is natürlich auch alles andere als optimal. Kann mir einer von Euch schlauen Köpfen einfach erklären wie man sowas bewerkstelligen kann, wie die SQL Query ca. auszusehen hat, und wenn möglich auch noch möglichst rechen-unintensiv?

Bin mir sicher es führen viele Wege nach Rom. Vielleicht können wir das hier ja mal ein bißchen zur Diskussion nutzen. Ich brauch n bißchen Abwechslung vom Arbeitsalltag Grins
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Skyw4lker

Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 36
Geschlecht: Männlich
Verfasst Mo 22.01.2007 15:46
Titel

Antworten mit Zitat Zum Seitenanfang

guckst du hier

parent child blabla usw.

Läuft über ne Baumstruktur und ist für ne DB ziemliche Kinderkacke was den Rechenaufwand angeht.
Auf der Oracle gibts den Connect By befehl der auf solche Queries ausgelegt ist, keine Ahnung
ob MySQL das auch hat.


Zuletzt bearbeitet von Skyw4lker am Mo 22.01.2007 15:49, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: Dortmund
Alter: 23
Geschlecht: Männlich
Verfasst Mo 22.01.2007 16:10
Titel

Antworten mit Zitat Zum Seitenanfang

wenn ich das da richtig verstanden habe beim überfliegen dann gibts da aber nur einen punkt, oder? also nur den startpunkt (zeige mir: alle früchte/alle fleischsorten).

ich suche ja was wo ich start und ziel angebe, und er mir die kürzeste strecke dahin sucht.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Skyw4lker

Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 36
Geschlecht: Männlich
Verfasst Mo 22.01.2007 16:26
Titel

Antworten mit Zitat Zum Seitenanfang

Achso,

hmm das geht in den Bereich Graphentheorie würde ich sagen. Hab ich mich im Grundstudium
mal mit rumgeplagt. Da gibts noch ein paar Variationen von soweit ich weiss, aber google hilft
dir da bestimmt weiter. Ist allerdings teilweise nicht von Pappe, hat mich damals den ein oder
anderen Nerv gekostet *zwinker*

click


Zuletzt bearbeitet von Skyw4lker am Mo 22.01.2007 16:29, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Mo 22.01.2007 17:23
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Connect By

nein, gibts in mysql nicht, da kommst du um rekursive queries nicht herum. es gibt ein paar andere gebilde, bspw. nested sets (mal googlen). ist hier aber ungeeignet, da für jeden user als ausgangspunkt ein neuer baum gespeichert werden müsste, so wie ich das sehe. Aber hierarchische daten in relationalen datenbanken sind eh meist ein performanceproblem, da gibts wenig elegante lösungen. glaub ich (ich hab mich mit baumstrukturen auch nur ein semester rumgequält).
 
beeviZ
Threadersteller

Dabei seit: 30.09.2002
Ort: Dortmund
Alter: 23
Geschlecht: Männlich
Verfasst Mo 22.01.2007 17:44
Titel

Antworten mit Zitat Zum Seitenanfang

naja, studivz hats auch irgendwie geschafft und das läuft meines Wissens nach auch mit MySQL *ha ha*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
tacker

Dabei seit: 22.03.2002
Ort: Offenbach am Main
Alter: 36
Geschlecht: Männlich
Verfasst Mo 22.01.2007 18:05
Titel

Antworten mit Zitat Zum Seitenanfang

Hast Du es mal ausprobiert?!
Ich meine nicht, dass das so ein großes Problem ist, die Seite, die
den Kontakt anzeigt, zieht ja sonst nicht viel aus der DB, da kann man schon etwas Rechenzeit
investieren. Und mit selects über IDs geht das doch flott.

Um das ganz etwas schnelle zur machen, könnte man die Zuordnung auch
unscharf machen.

Also statt

User 123 hat Kontakt 4567

User 123 hat Kontakte aus der ID-Reihen 4000-4999.

So kannst Du erstmal ein grobes Bild ermitteln, und herausfinden, bei welchen Usern es sich lohnt weiter
zu suchen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Skyw4lker

Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 36
Geschlecht: Männlich
Verfasst Mo 22.01.2007 21:10
Titel

Antworten mit Zitat Zum Seitenanfang

Das studivz macht das auch nur bis zu einer ziemliche endlichen Tiefe *zwinker* Ich glaube
maximal 4 oder so.

Läuft das echt auf ner MySQL?


Zuletzt bearbeitet von Skyw4lker am Mo 22.01.2007 21:13, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen XING API
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
[MySql]Lost connection to MySQL server during query
(php-mysql) übergabe von formulardaten und abfrage m. mysql
[PHP / MySQL] MySQL-Funktion gesucht: letzteÄnderungTabelle
[PHP + mySQL] Kann Fehler in einer mySQL-Phrase nicht finden
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.