Privat Nachrichten Funktion

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

  • Privat Nachrichten Funktion

    Hi,

    ich möchte in meiner WebSite eine Funktion intigrieren mit der man von user zu user nachrichten schicken kann.
    Diese bleiben dann bis z.B. max 100 gespeichert und abrufbar.
    Wie teile ich am besten die datenbank auf?
    Ich kann ja schlecht in einer einzigen Tabelle 100000Nachrichten speichern lassen und jedes mal alle neu durchsuchen lassen welche nun dem und welche dem user gehören.

    Hat jemand einen Ansatz?
    Danke

  • #2
    Re: Privat Nachrichten Funktion

    Original geschrieben von phpMorpheus2

    Ich kann ja schlecht in einer einzigen Tabelle 100000Nachrichten speichern lassen und jedes mal alle neu durchsuchen lassen welche nun dem und welche dem user gehören.
    Wieso nicht? Welche DB sollte das auch nur im geringsten Jucken?
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Nunja, wenn der Server nun jedes mal wenn ein User seine Mails abrufen will alle mails erst sortiert und selektiert werden müssen, kann ich mir gut vorstellen das der Server enorme performance einbüßt.
      Oder nicht?
      Ich habe daovn ja nicht sooo die Ahnung...

      Also kann ich ruhig so viele Einträge in einer DB-Tabelle haben wie ich will?
      Und der Server kommt damit klar?

      Kommentar


      • #4
        Bis du die Anzahl Nachrichten erreicht hast, die den Server in die Knie zwingen könnten, wird es wohl noch ein wenig dauern. Bis dahin kannst du dir überlegen, uralte Nachrichten zu löschen oder die Maximalzahl gespeicherter Nachrichten zu begrenzen!

        Kommentar


        • #5
          Ja, alte Nachrichten werden natürlich gelöscht und pro "user" eine begrenzte ANzahl zugelassen.
          z.B. dieses Forum, werden alle Beiträge in einer Tablle gespeichert und immer die ganze Tabelle durchsucht um die richtigen Threads zu finden und anzeigen zu können?
          Ist das hier auch so?

          Kommentar


          • #6
            Bestimmt sogar! Guck dir doch mal die Tabellen von irgendeinem freien Forum an, dem phpBB zum Beispiel. Manche Sachen werden zwar vorab ermittelt und extra abgelegt, zum Beispiel der letzte Beitrag in einem Forum, aber das ist dann aus Optimierungsgründen.

            Kommentar


            • #7
              z.B. dieses Forum, werden alle Beiträge in einer Tablle gespeichert und immer die ganze Tabelle durchsucht um die richtigen Threads zu finden und anzeigen zu können?
              Ja natürlich. DBM Systeme wie MySQL "durchsuchen" nicht so manuelle die Daten wie du vielleicht denkst - dafür gibt es Indizes und ähnliches. Solange die Tabellen vernünftig normalisiert sind wirst du lange keine Probleme haben ... und wenn dann weißt du wie du sie umgehst.
              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

              Kommentar


              • #8
                Also macht es nun nichts aus wenn ich von z.B. 400 Usern jede einzelne Nachricht in einer einzigen Tabelle ablege und auch von dort abrufe.
                Nicht schlecht. ok Danke

                Kommentar


                • #9
                  Original geschrieben von phpMorpheus2
                  Also macht es nun nichts aus wenn ich von z.B. 400 Usern jede einzelne Nachricht in einer einzigen Tabelle ablege und auch von dort abrufe.
                  Ich frage nochmal: Warum sollte es?
                  [FONT="Helvetica"]twitter.com/unset[/FONT]

                  Shitstorm Podcast – Wöchentliches Auskotzen

                  Kommentar


                  • #10
                    Original geschrieben von unset
                    Ich frage nochmal: Warum sollte es?
                    Weil das ziemlich viele Daten sind die der Server verarbeiten muss wenn sagen wir mal von 400 Usern mit je 100 Mails durchscnittlich immer < 40 im selben augenblick die mails abrufen.
                    Wenn der Server solche Mengen und noch viel mehr schafft, dann ist ja gut

                    Kommentar


                    • #11
                      Ziemlich viel? Ich hab grad ma einen select count(*)... gemacht und habe als Wert 5254634 erhalten. Also "viel" ist relativ. Da muss man viele Werte mit einbeziehen Rechenleistung, DBMS, Anbindung usw.

                      mfg
                      bugbuster
                      tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
                      documentation: php.net mysql.com framework.zend.com

                      Die Nachtwache!

                      Kommentar


                      • #12
                        Original geschrieben von phpMorpheus2
                        Weil das ziemlich viele Daten sind die der Server verarbeiten muss wenn sagen wir mal von 400 Usern mit je 100 Mails durchscnittlich immer < 40 im selben augenblick die mails abrufen.
                        Wenn der Server solche Mengen und noch viel mehr schafft, dann ist ja gut
                        solange du ne anständige datenbank wie mysql nimmst, ist es kein problem. das ding kommt auch noch mit 2 millionen datensätzen zurecht.
                        wenn du jetzt die "datenbank" access *duckundwegrenn* nehmen würdest, dann hätteste spätestens nach ein paar tausend einträgen performance probleme, aber ne richtige datenbank kriegt millionen von datensätzen gehandelt

                        muss nur anständig normalisiert sein.
                        aber das wurde alles ja gesagt

                        P.S. ich musste aber bisschen schmunzeln, wegen den performanceproblemen bei 4000 datensätzen

                        Kommentar

                        Lädt...
                        X