Ankündigung

Einklappen
Keine Ankündigung bisher.

Knifflige Frage zu spezieller Anforderung

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

  • Knifflige Frage zu spezieller Anforderung

    Hallo, ich bräuchte kurz mal eure Meinung zu meinem Vorhaben.

    Ich möchte so eine Art Wertpapier-Kursübersicht machen. Es handelt sich um 4 Papiere und nun möchte ich täglich den Kurs dieser Papiere in eine Datenbank eingeben.

    Ich hab mir das so gedacht:
    1. Datenbank: Grunddaten des Papieres
    2. Datenbank: Datum
    3. Datenbank: Kurs (in der db existiert dann noch eine w_id-> das ist die ID des Wertpapieres und eine d_id-> das ist die ID des Datums da ich nicht für jeden Kurs das Datum zum Wertpapier nochmals eingeben möchte

    Jetzt meine Frage: Macht dies so Sinn?

    Ziel soll sein, dass wenn ich auf Kurseingabe klicke, zuerst das Datum eingegeben wird und dann der Kurz zu jedem einzellnen Wertpapier. Das Datum soll dann in der Db-Datum gespeichert werden und der Kurs in der DB Kurs, wobei die ID des Datums auch in der Kurs-DB gespeichert werden muss sowie die ID des Wertpapieres aus der Grunddatenbank.


    Bitte um Infos, ob dies so passen würde, oder um Infos, wie ihr es machen würdet.

    LG, Andi


  • #2
    Hallo,

    dein Ansatz ist an und für sich schon richtig gedacht, kann man aber noch besser machen:
    - eine Tabelle für die Wertpapier-Stammdaten
    - eine Tabelle mit Wertpapier-Kursen: id, Wertpapier-ID, Kurs und Datum

    Das wäre ein simpler und nachvollziehbarer Aufbau. Das kann man natürlich noch aufbohren, indem es z. B. eine eigene Tabelle für den Kurs gibt. Der Kurs sollte ja an den Tagen jeweils der selbe sein für die Wertpapiere. Aus der Sicht betrachtet hättest Du mit obigen Model Redundanz, nämlich den mehrfach eingetragenen Kurs.


    MFG

    derwunner

    Kommentar


    • #3
      Hallo, gestern hatte ich den Gedanken auch, dass ich nur 2 Tabellen habe, einmal mit dem Stammdaten und einmal mit dem Kurs und Datum und w_id und id. Dies erscheint mir auch einfacher. Pro Tag existiert pro Wertpapier ein Kurs. Ich werde das mit 2 Tabellen lösen, da ich nicht so versiert in der Programmierung bin und mein Gedanke im 1. Post für mich nicht so leicht umzusetzen wäre.

      Kommentar


      • #4
        So, jetzt hab ich noch einen Gedanken, den ich höchstwahrscheinlich auch so umsetzen werde.

        Ich hab die Stammdaten. Die passen mal.
        Dann hab ich die Tabelle: Kurse.
        Die Tabelle Kurse sieht dann so aus: ID, Datum, Kurs1, Kurs2, Kurs3, Kurs4

        Die Kurse werden dann im Frontend mit dem Wertpapier verknüpft: Kurs1 = Wertpapier_ID1, Kurs2 = Wertpapier_ID2 usw.

        Weiters:
        Da ich die Kurse ja nicht historisch speichern möchte, sondern mir nur die differenz zum Vortag interessiert, ist meine Datenbank auch ziemlich schlank, denn ich bräuchte eigentlich nur 2 Zeilen. Den Kurs von gestern und heute.
        Das heißt, Sobald ich einen neuen Datensatz eingebe, wird die 2. ID gelöscht, die 1. ID zur 2. ID und der neue Datensatz zur 1. ID.

        So, theoretisch hört sich das eigentlich ganz simple an, aber wie wird das via PHP gelöst das speichern?

        Vielleicht könnte mir hier jemand einen kurzen Input geben?

        LG, Andi

        Kommentar


        • #5
          Die Tabelle Kurse sieht dann so aus: ID, Datum, Kurs1, Kurs2, Kurs3, Kurs4
          Nein, siehe Beitrag #2.

          Durchnummerierte Spalten sind zu vermeiden.
          Die Kurse speicherst du vertikal nicht horizontal, also alle Kurse untereinander.

          Kommentar


          • #6
            Gibt es einen Grund dafür, dass man dies nicht horizontal speichert?

            Dann müsste ich es so lösen, dass wenn ich heute die Kurse eingebe, beim speichern die Kurse vom Datum -2 gelöscht werden, oder? Ich sehe aber nur ein Problem am Montag, da es ja am Samstag und Sonntag keine Kurseingabe gibt. Somit kann ich Datum -2 auch nicht anwenden

            Kommentar


            • #7
              Wenn du eh nur 2 Kurse brauchst Vortag und heute und die Differenz dazu, muss man sich zwnagsläufig die Frage stellen, warum du dann eine Datenbank bemühst. Da kannst du es dann auch einfach in einer Textdatei ablegen, schon direkt als Array zum Beispiel.

              Für alles andere speichert du die Kurse untereinander, weil das dem Konzept von Datenbanken entspricht. Hier bitte nicht in Excel denken.

              Kommentar


              • #8
                Ok, das mit der Textdatei hört sich auch gut an, aber die Stammdaten lass ich mal in der Datenbank.
                Ich stell mir jetzt nur die Frage, wie die Textdatei aussehen könnte, so dass immer nur 2 Kurse (alt und neu) vorhanden sind zu jedem Wertpapier

                Kommentar


                • #9
                  Nicht mischen, entweder Textdatei oder Datenbank, warum beides?


                  Kommentar


                  • #10
                    Eine Textdatei ist bei mehreren möglichen konkurierenden Zugriffen keine gute Idee! Da muss man z.B. darauf achten das Race-Conditions vermieden werden. Nimm einfach weiter die DB und halte Dich an die Normalisierungsregeln.

                    Kommentar


                    • #11
                      Zitat von Messier 1001 Beitrag anzeigen
                      Eine Textdatei ist bei mehreren möglichen konkurierenden Zugriffen keine gute Idee! Da muss man z.B. darauf achten das Race-Conditions vermieden werden. Nimm einfach weiter die DB und halte Dich an die Normalisierungsregeln.
                      Konkurrierende Schreibzugriffe sind bei einmaligen Update täglich nicht zu erwaten. Da nur ein Tageskurs gespeichert wird, und nicht wie üblich hoch/tief/umsatz etc. scheint mir das auch nur eine Übungsaufgabe zu sein; Ob das für oder gegen DB spricht, liegt dann wohl am Lehrpersonal.

                      Kommentar

                      Lädt...
                      X