Ankündigung

Einklappen
Keine Ankündigung bisher.

Vermittlung zwischen Nutzern in der Webanwendung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Vermittlung zwischen Nutzern in der Webanwendung

    Hallo zusammen,

    ich habe folgendes Problem und wollte fragen, wie mein bisheriger Ansatz verbessert werden kann.

    Also:
    Ich möchte alle Nutzer in der Webanwendung in einem virtuellen Pool betrachten.
    Nun möchte ich aus all diesen Usern Paare bilden, also jeweils einen Nutzer mit einem anderen (der in diesem virtuellen Pool an Teilnehmern ist) verknüpfen, und anschließend weitere Aktionen durchführen.

    Bisher mache ich das so:

    -Ein Nutzer kann sich in dem Pool eintragen, dies geschieht mit einem Eintrag in eine MYSQL Datenbank (Eintrag in Suchtabelle)

    -Bei jedem Nutzer läuft im Hintergrund ein AJAX Request, der alle paar Sekunden (über eine PHP Steuerklasse) in der Datenbank (Verknüpfungstabelle) nachschaut, ob man selbst (also Nutzer A) bereits mit einem anderen Nutzer (B) verknüpft wurde //Permutation wird natürlich betrachtet
    => Falls ja, Löschung aus Suchtabelle & weitere Aktionen

    -Falls dies nicht der Fall ist, dann wird selbst geschaut, ob eine weitere Person im Pool ist, die noch nicht verknüpft wurde, und erstellt selbst eine Verknüpfung (Verknüpfung wird in Verknüpfungstabelle angelegt)

    In der Datenbank sieht das in etwa so aus:
    Suchtabelle: Id | User | SuchAttribut
    Verknüpfungstabelle: Id| UserA | UserB |


    Das ganze funktioniert bereits einigermaßen nach diesem Schema.

    Jedoch frage ich mich:
    geht das ganze evtl. "effizienter" bzw. "besser" ohne soviel Datenbank Burst?

    Wie kann ich zum Beispiel realisieren, dass ein Nutzer nicht "doppelt" verknüpft wird, weil die Datenbankabfragen zeitgleich eingehen?

    Vielen Dank im Voraus

    PS: mir geht es nicht direkt um Code, sondern um Ideen bzw. Möglichkeiten/Konstrukte, mit denen das ganze besser/effizienter gestaltet werden kann.


  • #2
    Und das hat mit PHP Einsteiger jetzt genau was zu tun?

    PS: mir geht es nicht direkt um Code, sondern um Ideen bzw. Möglichkeiten/Konstrukte, mit denen das ganze besser/effizienter gestaltet werden kann.
    Uns geht es um Code. Inserate, Konzepte und Meinungsumfragen
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Zitat von KeyboardUser Beitrag anzeigen
      Jedoch frage ich mich:
      geht das ganze evtl. "effizienter" bzw. "besser" ohne soviel Datenbank Burst?
      TRIGGER

      Wie kann ich zum Beispiel realisieren, dass ein Nutzer nicht "doppelt" verknüpft wird, weil die Datenbankabfragen zeitgleich eingehen?
      passende Constraints.
      PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

      Kommentar


      • #4
        Das Ajax vom User sollte nur prüfen ob sich in dem Punkt etwas geändert hat.
        Die Logik die User verknüpft und aus der Suchtabelle löscht sollte unabhängig laufen, z.B.: über einen Cronjob.
        Es macht wenig sinn diesen Prozess von jeden User anstoßen zulassen.
        Vieles kann, wenig muss.

        Kommentar


        • #5
          Zitat von Varon Beitrag anzeigen
          [...]
          Es macht wenig sinn diesen Prozess von jeden User anstoßen zulassen.
          Jein. Einerseits mag das richtig sein, bei grossen Plattformen kann das zu Problemen führen. Anderseits wieso nicht, bei einem Cronjob wartest du im worst case 59 Sekunden auf eine Verknüpfung.

          Und anstelle AJAX im klassischen empfiehlt sich hier ein Socket (nodejs?), damit der Browser nicht stetig abfragen muss sondern die Information vom Server aus geht.
          GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

          Kommentar

          Lädt...
          X