Datenbank Design à la WhatsApp

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

  • Datenbank Design à la WhatsApp

    Hallo zusammen,
    Ich lese mich aktuell zu den Themen mySQL und.php ein und möchte gerne eine Datenbank anlegen nur ist mir noch unklar wie man dies auf eine professionelle Art umsetzt. Daher die.Fragen:

    - Wie sieht eine Datenbank aus die beispielsweise WhatsApp nutzt? Wie sieht die Struktur der db aus? Man hat eigene Userinformationen und die der Anderen user. Wie werden diese miteinander verknüpft um diese in der Liste anzuzeigen? Sind alle informationen in einer db aber in verschiedenen tabellen oder sogar in verschiedenen db's? Welche Schlagworte gibt es hierzu zum einlesen? Wo gibt es Beispiele/Tutoials zu einer professionellen Umsetzung?

    Danke für euren Support

  • #2
    Zitat von php2015 Beitrag anzeigen
    Hallo zusammen,
    Ich lese mich aktuell zu den Themen mySQL und.php ein und möchte gerne eine Datenbank anlegen nur ist mir noch unklar wie man dies auf eine professionelle Art umsetzt.
    Ich würde ich dir raten, erstmal mit einfache(re)n Problemstellungen anzufangen (bspw. hiermit oder hiermit) und dann schrittweise komplexere anzugehen. Außerdem würde ich den Fokus nicht explizit auf MySQL legen. Das hat (vergleichbar wie PHP als Programmiersprache und Laufzeitumgebung) diverse Eigenheiten, die du bei anderen Implementierungen nicht unbedingt findest. PostGreSQL, SQLite oder Firebird sind besser geeignet, wenn du allgemeingültig etwas über SQL und relationale Datenbanksysteme lernen möchtest.

    Daher die Fragen:

    - Wie sieht eine Datenbank aus die beispielsweise WhatsApp nutzt? Wie sieht die Struktur der db aus? Man hat eigene Userinformationen und die der Anderen user. Wie werden diese miteinander verknüpft um diese in der Liste anzuzeigen? Sind alle informationen in einer db aber in verschiedenen tabellen oder sogar in verschiedenen db's? Welche Schlagworte gibt es hierzu zum einlesen?
    WhatsApp ist ein Client-Server-System (plus entsprechendes Drumherum), daher musst du da zwischen zwei Datenbanken unterscheiden:

    Die eine, die auf dem Messenger-Client-Gerät läuft. Das ist (zumindest bei Android-Clients) eine simple SQLite-Datenbank. Deren Inhalt und Struktur lassen sich auslesen, falls man keine vernünftige Dokumentation findet.

    Die andere befindet sich auf den Servern von WhatsApp und heißt Mnesia. Wie das Datenbank-Schema exakt aufgebaut ist, kann dir nur jemand sagen, der in dem Unternehmen arbeitet. Die Frage ist, ob das vom Unternehmen erwünscht ist. Manche kommunizieren so etwas relativ offen, andere sehen es als Geschäftsgeheimnis an.

    Auf alle Fälle ist es ein "bisschen" mehr als ein paar MySQL-Datenbank-Tabellen leisten können. Und soweit ich das richtig verstanden habe, ist Mnesia ein Key-Value-Store also aus der Familie der NoSQL-Datenbanksysteme. Das kann man mit MySQL bestenfalls simulieren.

    Zur Technologie hinter WhatsApp finden sich durchaus interessante Berichte. Ob die jetzt tief genug gehende Antworten auf deine Fragen liefern, musst du selbst rausfinden:

    * erlang - Why big companies use Mnesia instead of using Riak or CouchDB - Stack Overflow

    * How WhatsApp Grew to Nearly 500 Million Users, 11,000 cores, and 70 Million Messages aSecond - High Scalability -

    * The WhatsApp Architecture Facebook Bought For $19Billion - High Scalability -

    * https://news.ycombinator.com/item?id=8419801 (hier ist auch ein Youtube-Video verlinkt, das interessant sein könnte)

    Wo gibt es Beispiele/Tutoials zu einer professionellen Umsetzung?
    Keine Ahnung, bestenfalls gibts eine Open-Source-Alternative, die vernünftig dokumentiert ist. Allerdings sind viele Open-Source-Messenger-Systeme Client-to-Client-orientiert. Da gibts keine zentrale Datenbank.

    Einige XMPP-Messenger-Systeme sind aber auch nach Client-Server-Modellen aufgebaut. Ein Beispiel wäre ejabberd, welches in Erlang geschrieben ist und Mnesia als Server-Datenbank verwendet. Allerdings erscheint mir schon die Einrichtung eines Servers nichttrivial zu sein, da würde ich auf Quellcode-Ebene noch weniger Einsteigerfreundliches erwarten ...
    Zuletzt geändert von fireweasel; 23.03.2015, 10:56. Grund: typos + links
    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

    Kommentar


    • #3
      Whow....vielen Dank für deine ausführliche Antwort. Bin dir wirklich sehr dankbar. Nun habe Ich jede Menge Stoff zum Einlesen.
      Sobald Ich weitere Fragen habe werde Ich mich hier nochmals melden. Vielen Dank und Gruss.

      Kommentar


      • #4
        Danke firewease.
        Vieles ist auch für mich neu!!

        php-Entwicklung | ebiz-consult.de
        PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
        die PHP Marktplatz-Software | ebiz-trader.de

        Kommentar

        Lädt...
        X