Mr.H Geschrieben 12. April 2011 Geschrieben 12. April 2011 Guten Abend, Ich fang auch gleich mal an... Zum Problem: Ich will die Beziehungen welche in einem sozialen Netzwerk bestehen durch ein Datenbankmodell abbilden. Das ganze drumherum lass ich jetzt mal weg, konzentrieren wir uns auf die Haupttabellen. Es gibt eine Tabelle "Benutzer" in welchen die Benutzer des Netzwerkes abgespeichert werden. Daneben gibt es eine Tabelle "Beziehungen" in welchem die Beziehungen, damit meine ich die Freundschaftsverbindungen dargestellt werden sollen. Habe mir das so gedacht: "Benutzer" -ID KEY - Name - Geburtstag "Beziehungen" - ID Fremdschlüßel - Freunde_ID (da werden dann auch die IDs von der BenutzerTabelle reingeschrieben) Aber mir erscheint das nicht ganz richtig und passend. Vorallem wenn man viele hunderte, tausende Benutzer hat, welche im Schnitt 100 Freunde haben, wird die Tabelle schon recht groß. Kann man das irgendwie anders darstellen? Besser? Oder ist der Ansatz schon ganz in Ordnung. Ich hoffe ihr habt ein paar gute Ideen. Oder vielleicht noch ein anderer Ansatz, welche Engine eignet sich besonders gut um diese Beziehungen schnell abrufen zu können und unterstützt dazu auch noch Joins?
flashpixx Geschrieben 12. April 2011 Geschrieben 12. April 2011 Vielleicht nur mal so als Anmerkung: Freundschaftsbeziehungen lassen sich als ungerichteten Graph darstellen (wenn Person A mit B befreundet ist, dann ist B auch mit A befreundet). Technisch beschreibt man das mit Repräsentation von Graphen im Computer Du wirst in dieser Darstellung das Problem haben, dass die Datenmenge quadratisch mit der Anzahl der Personen wächst (wobei man aber meist eine sparse Matrix erhält, da nicht jedes Element besetzt ist). Ein relationale Datenmodell ist dafür eine schlechte Wahl. Ein System was solche Beziehungen abbilden kann wäre z.B. Apache Cassandra - Wikipedia, the free encyclopedia
Mr.H Geschrieben 13. April 2011 Autor Geschrieben 13. April 2011 Danke flashpixx, dann werde ich mich nun den NoSQL Datenbanken zuwenden.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden