Announcement

Collapse
No announcement yet.

Datenbank für Internetanwendung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbank für Internetanwendung

    Hallo,

    ich möchte ein Programm schreiben, mit dem ca. 100.000 User gleichzeitig auf eine Datenbank auf meinem WebSpace zugreifen können.

    Die Frage ist jetzt:

    1. Welche Datenbank verwende ich?
    2. Gibt es eine einfache Möglichkeit - am besten eine Komponente - mit der ich auf diese Datenbank zugreifen kann?
    3. Gibt es für diese Art von Datenbank einen Database Desktop wie der bei Delphi dabei ist?

  • #2
    Hallo Martin,
    .
    1. Wie willst Du auf die Datenbank zugreifen? SQL?
    2. Bestimmt
    3. Gibts das für eine DB nicht?
    .
    Also, es gibt viele Datenbanken. Schau einfach mal in den Datenbank-Ordner. Mit Delphi kannst Du auf nahezu alle Datenbanken zugreifen.
    .
    mfg
    Michae

    Comment


    • #3
      Nunja.. ich kann kein SQL, von daher möglichst ohne SQL, wenn das möglich ist. Falls es nicht geht brauche ich eine Art SQL Designer, bei welchem auch ein Tutorial dabei ist, aus Kostengründen möglichst Freeware

      Comment


      • #4
        Geh dich mal in einen Buchladen deines Vertrauens und schau nach einem guten Buch mit CD.
        Ich kann dir da den Markt & Technik Verlag empfehlen, die haben gute Autoren.
        Du könntest doch PHP nutzen wenn dein Webspace damit läuft .
        PHP und Delphi arbeiten gut zusammen.
        In Delphi 7 Enterprise gibt’s mehr als genug Möglichkeiten auf Datenbanken zuzugreifen.
        Selbst mit Onlinedatenbanken sollte dies möglich sein.
        Im Zweifelsfall schau dich mal hier um.
        www.google.de und nach "delphi +onlinedatenbank" suchen

        LG Mark

        Comment


        • #5
          Gibt es nicht irgendwelche Komponenten wie TTable mit denen ich einfach per "FieldByName('Feldname')" die MySQL DB ansprechen kann

          Comment


          • #6
            > Gibt es nicht irgendwelche Komponenten wie TTable mit denen ich einfach per "FieldByName('Feldname')" die MySQL DB ansprechen kann?

            Gibt es: <a href="http://crlab.com/mydac/">MyDAC</a>

            Aber Aufgrund deiner Fragestellungen würde ich mal darauf Tippen das du noch wenig Ahnung von der Marterie hast. Falls wirklich die Anforderung gegeben sein würde das 100.000 User <b>gleichzeitig</b> auf deine Datenbestand zugreifen müssten würde ich eher sagen du brauchst einen Application-Server mit entsprechener Middleware mit automatischer Lastverteilung und Failover- und Recovery-Strategie. Kostenpunkt irgendwo im 6-Stelligen € Bereich für SW/HW + Entwicklung. Laufende Kosten pro Monat im 4-5 Stelligen Bereich

            Comment


            • #7
              Nun ich programmiere ein MMORPG (Rollenspiel) die 100.000 sind nur Wunschdenken, aber ich will falls es wirklich einmal zu kommen sollte das es auch funktioniert.

              Aber OK gehen wir nicht von 100.000 sondern von 10.000 oder von 1.000 aus. Welchen Unterschied macht das?

              Im Moment mach ich das so, da ich von db eher wenig Ahnung hab, das ich ein php-Skript auf dem Server liegen hab, das ich über Delphi TidHttp Kompo mit entsprechenden Parametern aufrufe. Das Skript schreibt die Daten für jeden User in eine datei:
              Username1.chr
              Username2.chr
              Username3.chr
              usw.

              Über ein zweites Skript bekomme ich dann wiederum den Inhalt dieser Datei. Wie beurteilen Sie diesen Aufbau, und wie sieht es da ihrere Erfahrung nach mit der Performance aus?

              Da sich jeder Benutzer mit seinem Namen einloggt muss das Programm/Skript ja nur die Datei mit dem Benutzernamen öffnen, das sollte doch relativ zügig gehen oder?

              PS:
              Jede Datei ist ca. 1 KByte groß.
              Diese Datei wird einmal beim Start geholt, die Daten in ein Record geladen und bei einer Änderung wird das ganze wieder abgespeichert.
              &#10

              Comment


              • #8
                > Aber OK gehen wir nicht von 100.000 sondern von 10.000 oder von 1.000 aus. Welchen Unterschied macht das?

                Gewaltigen. Aktive DB-Connection sind etwas sehr Resourcenlastiges und kann z.B. mit Techniken wie ASP.NET und Connection Pooling entschärft werden.

                PHP habe ich absolut keine Erfahrungen ob hier bei größeren Connection-Anzahl Performanceprobleme existieren

                Comment


                • #9
                  Hi Martin,
                  .
                  schau Dir mal IntraWeb an.
                  .
                  mf

                  Comment


                  • #10
                    Soweit ich weis mache ich mit IntraWeb einen eigenen Webserver.. allerdings habe ich nur WebSPACE und keinen eigenen bzw. virtuellen Server... bzw.. ich hab momentan nichtmla Webspace, das kommt erst noch, ich teste das alle momentan loka

                    Comment


                    • #11
                      Hi Martin,
                      .
                      Du solltest, bevor Du lokal anfängst, irgendwas zu testen, erstmal wissen, was Du überhaupt benötigst bzw. haben willst

                      Comment


                      • #12
                        ich hab mich jetzt entschieden mit Delphi PP-Skripte auszuführen, welche viele kleine Dateien mit eindeutigen Bezeichnungen verwalten.

                        Struktur wird so aussehen:

                        ../items/username.dat //Gegenstände
                        ../character/username.dat //Charaktereigenschaften
                        ../location/username.dat //Hier ist der Standort des Spielers drin, es gibt verschiedenen Städte und Gebäude
                        ../activate/username.dat //Hier sind nur die User drin die nochnicht aktiviert wurden

                        Die Daten werden jeweils verschlüsselt in die Datei geschrieben und und beim aufruf durch die Skripte entschlüsselt an das Programm weitergegeben und verarbeitet.
                        &#10

                        Comment

                        Working...
                        X