Datenbankkonzept für mehere Shops

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

  • Datenbankkonzept für mehere Shops

    Hallo!

    Ich wende mich hier mal an die erfahrenen Leute die schon größere Projekte hinter sich haben. Ich bin im Moment dabei ein DB-Konzept auszuarbeiten, das dafür ausgelegt sein soll, mehrere Online-Shops auf einem Server laufen zu haben. Die Frage ist hier nun, ob ich eine einzige Datenbank erstelle, in der dann alle Shops mit ihren getrennten Tabellen drin sind, oder ob ich besser für jeden Shop eine eigene Datenbank aufbaue. Mein Problem dabei ist, dass ich ein Admin-Tool aufbauen möchte, mit dessen Hilfe ich auf alle Shops gleich zugreifen können muss, um gewisse Dinge auszuwerten (Anzahl Artikel pro Shop, etc.). Wenn ich dann mehrere Datenbanken habe, wird dies doch erschwert weil ich mehrere DB-Verbindungen brauche, oder?

    Für ein paar Tipps wäre ich sehr dankbar.

    Gruss

    Yezariel
    mens agitat molem

  • #2
    Es ist möglich per PHP Code die Datenbank zu wechseln
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      Hallo!

      Ähm, ja, das ist mir auch klar. Heißt das, du würdest also eher mehrere Datenbanken bevorzugen? Sorry, ich will nicht nerven, ich will nur nicht am Anfang gleich einen dicken Fehler machen, den ich nachher nicht mehr ausbügeln kann...

      Danke

      Gruss

      Yezariel
      mens agitat molem

      Kommentar


      • #4
        Es ist sicher Einfach einfach eine shop_ID anzuhängen und alles über die shop_ID zu handeln ( login , etc. ) und so mehrere Shops in einer DB zu halten...
        Du mustt Dir nur das Konzept gut überlegen und vergiss nicht Sicherheitsaspekte wenn es zB um Kreditkarten info oder Kundendaten geht...
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Schließe mich der Idee von MelloPie an...
          mfg
          Günni


          Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
          Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
          Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
          City-Tiger - Online durch die Straßen tigern...

          Kommentar


          • #6
            würde aus performance-gründen jeden shop in einer eigenen datenbank ablegen.
            wenn mehrere nutzer gleichzeitig uaf eine datenbank zugreifen, muss mysql immer komplett die datenbank durchforsten, was zeit benötigt.
            bei separater datenbank wird immer nur die datenbank im speicher gehalten, die auch benötigt wird, was weniger zeit benötigt.
            des weiteren können separate datenbanken parallel (fast) bearbeitet werden, was bei einer datenbank nicht geht - wenn mehrere nutzer diese gleichzeitig benutzen wollen.

            Kommentar


            • #7
              Original geschrieben von bohni
              des weiteren können separate datenbanken parallel (fast) bearbeitet werden, was bei einer datenbank nicht geht - wenn mehrere nutzer diese gleichzeitig benutzen wollen.
              da laufen 2 threads parallel (multitasking), ob das nun 1 oder 2 datenbanken sind ist dabei egal.
              wär ja traurig, wenn immer nur ein prozess auf einer datenbank laufen würde.

              Kommentar


              • #8
                @graf: wenn mehrere nutzer gleichzeitig auf eine gemeinsame datenbank zugreifen wollen, sind die connections schon parallele threads (multithreading), nur bei datenbankoperationen reihen sich diese threads wunderbar in eine warteschlange ein, da dabei ja auf einen gemeinsamen speicherbereich zugegriffen wird.

                Kommentar


                • #9
                  ich lass mich ja gern belehren ...
                  kann man das irgendwo nachlesen?

                  Kommentar


                  • #10
                    Das mit der Shop-ID klingt einleuchtend. Sowas in der Art hatte ich mir auch vorgestellt, wenn ich mit einer einzelnen Datenbank arbeite.

                    Noch eine Performance-Frage: Wenn ich also mit einer einzelnen DB arbeite, ist es dann von Belang, ob ich z.B. alle Artikeldaten in einer einzigen Tabelle speichere oder pro Shop eine Artikeltabelle aufbaue? Ich könnte die Artikel ja dann auch per Shop-ID trennen wenn ich die Daten in einer einzelnen Tabelle speichere. Allerdings würde die Tabelle dann wahrscheinlich ziemlich schnell ziemlich groß werden. Ist die Lösung mit mehreren Tabellen dann schneller?

                    Danke für eure Tipps!!

                    Gruss

                    Yezariel
                    mens agitat molem

                    Kommentar


                    • #11
                      @graf: ausm skript im fach betriebssysteme des informatikstudiums.
                      zwar stand dort nicht die datenbankverbindung im vordergrund,aber der zugriff mehrerer prozesse oder threads auf gemeinsamen speicher. dieser wird dann für den jeweiligen prozess/thread gesperrt und erst nach freigabezeichen von thread wieder für andere threads zur verfügung gestellt. so isses jedenfalls bei win-nt (und aufwärts) und unix/linux. nur leider sind manche programme nicht sauber programmiert (keine ordentliche speicherfreigabe), dann kommt dann so ein wunderschöner blauer bildschirm mit "violation access..." oder "segmentation fault...".

                      Kommentar


                      • #12
                        aber ich dachte bei der datenbank isses so, dass die tabellen, die geupdatet werden gerade gesperrt sind und wenn ich nur auslese, kann ich das auch gleichzeitig machen

                        sonst wären ja auch die tollen befehle LOCK TABLE und UNLOCK TABLE unnötig oder?
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          also meiner meinung nach sind die tabellen bei einer myisam-datenbank nicht gesperrt. deswegen gibt es ja die befehle lock und unlock, damit man das manuell tun kann. ein weiteres indiz dafür ist, das myisam-datenbanken keine transaktionen untersützen - dazu müsste man innoDB als datenbank-typ angeben, was aber aus performance-gründen die wenigsten provider unterstützen.

                          wenn du aber nur einen bestimmten shop aus einer einzigen tabelle auslesen möchtest, werden trotzdem alle datensätze durchforstet - ausser du überlegst dir eine erfolgversprechende indizierung. das wird aber mit ner mysql-db eine eher ziemlich aufregende angelegenheit.

                          Kommentar


                          • #14
                            das muss nicht sein wenn man klug indiziert
                            EDIT:

                            jo jetzt hab ichs auch im thread gelesen :-)

                            Beantworte nie Threads mit mehr als 15 followups...
                            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                            Kommentar

                            Lädt...
                            X