Shaguar: Datenbanken per Scipt anlegen

Hallo zusammen,
ich hab da mal ne Frage: Ich habe ein php Programm mit Userverwaltung, sprich man kann neue User registrieren und wieder löschen etc (natürlich noch mehr Sachen die aber grad unwichtig sind). Ich lege auch für jeden User 3-4 neue Tabellen in der Datenbank an in der Information gespeichert werden. Die Frage ist wenn ich jetzt vollen Zugriff auf die Datenbank habe und auch beliebig viele neue Db's anlegen kann, ist es sinnvoll für jeden User eine eigene DB anzulegen anstatt in einer Datenbank zu arbeiten und dort für jeden 3-4 Tabellen an zu legen. Also gibt es irgendwelche Vorteile oder Nachteile das so zu machen wie Sicherheit, Geschwindigkeit, etc... ?
Mfg

  1. Hi,

    Ich lege auch für jeden User 3-4 neue Tabellen in der Datenbank an in der Information gespeichert werden.

    Du hast definitiv einen maximal schwerwiegenden Konzeptfehler.

    Die Frage ist wenn ich jetzt vollen Zugriff auf die Datenbank habe und auch beliebig viele neue Db's anlegen kann, ist es sinnvoll für jeden User eine eigene DB anzulegen

    Es ist sinnvoll, für jeden User die existierende Struktur weiter zu verwenden und außer Datensätzen *nichts* anzulegen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Du hast definitiv einen maximal schwerwiegenden Konzeptfehler.

      Die Frage ist wenn ich jetzt vollen Zugriff auf die Datenbank habe und auch beliebig viele neue Db's anlegen kann, ist es sinnvoll für jeden User eine eigene DB anzulegen

      Es ist sinnvoll, für jeden User die existierende Struktur weiter zu verwenden und außer Datensätzen *nichts* anzulegen.

      Cheatah

      Ja das Konzept ist schon ok so, ich kanns dir auch gerne nochmal genau erläutern, aber zurück zu meiner Frage, hat es denn irgendwelche Vorteile die Daten in verschieden DB's zu splitten?

      1. Hallo,

        Du hast definitiv einen maximal schwerwiegenden Konzeptfehler.

        sehr richtig...

        Ja das Konzept ist schon ok so, ich kanns dir auch gerne nochmal genau erläutern, aber zurück zu meiner Frage, hat es denn irgendwelche Vorteile die Daten in verschieden DB's zu splitten?

        OK.
        Also ich kann dir sagen, dass ich einige sehr aufwendige, sehr stark frequentierte Services und Programme geschrieben habe und betreue.
        Und - von einigen kleinen Ausnahmen abgesehen - komme ich fast überall mit 1 einzigen Datenbank aus.
        Auch wenn Gigabytes an Daten drin sind.
        Ich hoffe, du verwechselst da was:
        --------------------------
        Datenbank = (z.B.) db_001
        Tabelle   = (z.B.) user_emailadressen
        --------------------------
        Datensätze/Zeilen:

        username          email
        lutz              lutz@lu.tz
        kaffee            kaffee@kuch.en
        kugelschreiber    kugel@schreib.er
        --------------------------

        _Normalerweise_ legt man _eine_ Datenbank an und erarbeitet eine Struktur für die selbige.
        Das hört sich - zumindest für kleinere/einfachere Projekte - komplizierter an, als es ist.

        Ich kenne dein Konzept und deinen Plan nicht, vermute aber mal, dass du noch nie mit IDs gearbeitet hast, deshalb versuche ich es dir in Kurzform und ganz einfach zu erklären:

        Du legst einfach deine 3-4 Tabellen in der Datenbank (einmal) an, die du ursprünglich für jeden User anlegen wolltest, und fügst in jeder Tabelle noch eine Spalte "id" hinzu.

        Dann trägst du User 1 mit allen Daten in diese ganzen Tabellen ein und setzt in die Zeile dieses Users die Spalte "id" überall auf 1.
        Danach legst du User 2 an (du kannst in einer Tabelle mehrere Zeilen ("Datensätze") und Spalten anlegen!) und schreibst bei dem die ID 2 rein.
        Und so machst du das mit allen Usern.
        Ganz einfach.
        So kannst du aus allen Tabellen alle Details von jedem User holen, da ja jeder eine eigene ID hat.

        Für jeden User 3-4 neue Datenbanken anzulegen ist noch extrem viel unsinniger als für jeden User 3-4 neue Tabellen zu erstellen.
        Du bekommst nicht nur extreme Probleme mit der Performance (geschweige denn mit der Übersichtlichkeit), sondern auch mit Backups und nicht zuletzt mit deinem Hoster, der dir hoffentlich nicht einfach "MySQL-Datenbanken" auf "unbegrenzt" gesetzt hat...?

        Ich hoffe, dass ich dir weiterhelfen konnte.

        Gruß, Lutz.

        1. Ja gut also wenn überhaupt hätte ich für jeden User 1 Datenbank angelegt und in der dann die 3 Tabellen.
          Das mit den ID's ist mir schon klar, hab schon auch etwas Erfahrung mit Datenbanken.
          Es ging halt nur darum um irgendwelche Vorteile zu finden die dafür sprechen würden es auf versch. DB's zu verteilen. Aber anscheinden gibt es ja keine.

          1. echo $begrüßung;

            Ja gut also wenn überhaupt hätte ich für jeden User 1 Datenbank angelegt und in der dann die 3 Tabellen.

            Vielleicht solltest du die Aufgabenstellung erläutern. Warum denkst du, jedem Benutzer seine eigene Datenbank geben zu müssen?

            Es ging halt nur darum um irgendwelche Vorteile zu finden die dafür sprechen würden es auf versch. DB's zu verteilen. Aber anscheinden gibt es ja keine.

            Natürlich gibt es welche, doch das kann man so pauschal nicht beantworten. Das ist immer abhängig von der Aufgabenstellung. Ein Vorteil wäre die getrennte Administrierbarkeit. Jeder Nutzer hat seine eigenen Kennung, kann damit in seiner Datenbank hantieren, ohne dass es andere beeinflusst. Dass das als Vorteil angesehen werden kann, setzt voraus, dass solch eine Trennung gewünscht ist.

            echo "$verabschiedung $name";