Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute,

Ich habe momentan gerade die totale Denkblockade! Bin dabei für ein Projekt die Tabellen auf Papier zu bringen!

Ich habe eine Tabelle für Benutzer und ich möchte gerne das diese Nutzer untereinander befreundet sein können. Leider fehlt mir gerade jeglicher Denkansatz um eine Beziehung zwischen den Nutzern darzustellen.

Es soll im Prinzip so aussehen,

User1 & User 2 sind Freunde

User2 & User 3 sind Freunde

User1 & User 3 kennen sich nicht

Wie stelle ich das in der Datenbank da? Ich brauch keine Befehle sondern nur die mögliche Darstellung.

Ihr habt doch sicherlich eine Idee oder?

Gesendet von meinem C6603 mit Tapatalk

Geschrieben

Wenn du die Tabelle der Benutzer schon hast benötigst du noch eine 2. Tabelle mit den verfügbaren Beziehungstypen (befreundet, unbekannt usw.) und eine 3. Tabelle deren Sätze auf 2 Benutzer und einen Beziehungstyp referentiert.

Geschrieben
Wenn du die Tabelle der Benutzer schon hast benötigst du noch eine 2. Tabelle mit den verfügbaren Beziehungstypen (befreundet, unbekannt usw.) und eine 3. Tabelle deren Sätze auf 2 Benutzer und einen Beziehungstyp referentiert.

Wobei "unbekannt" auch sein kann, wenn einfach keine Beziehung besteht. Dann hat man nicht das Problem, dass man einen neuen Benutzer erst einmal mit jedem anderen verknüpfen muss.

Geschrieben

Das stimmt pr0gg3r!

Aber irgendwie fehlt mir jetzt immernoch sie Verknüpfung zwischen den benutzern

Gesendet von meinem C6603 mit Tapatalk

Geschrieben

Fang mal einen Schritt weiter vorne an.

Darf jeder Benutzer jeden als Freund eintragen können und das ist dann so. Oder muss erst die andere Seite die "Freundschaft" bestätigen?

Geschrieben

Soweit hab ich garnicht gedacht :-D

Aber stimmt! Irgendwo muss ich das ja auch unterkriegen! Wäre nur logisch wenn die Freundschaft beiderseits wäre! Brauch ich also doch ne tabelle für die möglichen Beziehungen

Gesendet von meinem C6603 mit Tapatalk

Geschrieben

Nö. Würde ich dann so machen.

Tabelle 1 = User (UserID)

Tabelle 2 = Freundschaftsanfragen (UserID1, UserID2)

Tabelle 3 = Freundschaften (UserID1, UserID2)

Wenn UserA eine Anfrage an UserB stellt:

1.) select Tabelle2 where UserID1 = UserB AND UserID2 = UserA

-> Dann hat nämlich User B die Anfrage schon gestellt

Wenn select positiv weiter mit 3

Wenn select negativ weiter mit 2

2.) insert Tabelle2 UserID1 = UserA AND UserID2 = UserB

-> quasi die Anfrage an UserB in die Tabelle schreiben

-> ENDE

3.) delete from Tabelle 2 where UserID1 = UserB AND UserID2 = USERA

Insert Tabelle 1 USerID1 = UserA AND UserID2 = UserB

Insert Tabelle 2 UserID1 = UserB AND UserID2 = UserA

(Damit beide Richtungen existieren)

-> Ende

Du kannst dann bei den User ja noch einbauen das so ne Übersicht kommt: Freundschaftsanfragen.

Dann musst du alle anzeigen mit select Tabelle 2 where UserID2 = (eigene UserID)

Du brauchst also nur 2 Tabelle mit gleichem Aufbau.

Jeweils 2 Spalten mit der UserID.

Geschrieben
Nö. Würde ich dann so machen.

Tabelle 1 = User (UserID)

Tabelle 2 = Freundschaftsanfragen (UserID1, UserID2)

Tabelle 3 = Freundschaften (UserID1, UserID2)

Wieso lässt du nicht die Tabelle Freundschaftsanfragen weg und setzt ein Flag, ob diese bestätigt wurde?

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...