[MySQL 4.1] Performance Frage

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

  • [MySQL 4.1] Performance Frage

    Hey,

    Situation: Abbildung eines Kontosystemes. Es wird dabei nur ein Konto berrücksichtig d.h. alle Soll/Haben Buchungen sollen aufgezeigt werden. Und es soll ermittelt werden können welcher User noch nicht gezahlt hat.

    Table month:
    monthid | month

    Table years:
    yearid | year

    Table month_years
    bezahltid | monthid | yearid

    Table user_bezahlt
    userid | bezahltid | zahlungstag | Betrag | verwendungungszweck

    Table bankverbindung
    userid | kontonr | blz | inhaber

    Table user
    userid | name | vorname | usw.......


    Das ist momentan meine Idee wobei ich finde das man diese noch optimieren kann.
    Table month, year und month,year bilden alles ab und fungieren als Einrichtungstabellen.

    Nur ist das die beste Möglichkeit?

    Weiterer Punkt ist das aktuelle Saldo:
    Möglichkeiten:
    a) Ermitteln lassen anhand der Ab- und Zugänge auf summiert.
    b) in der DB speichern und bei veränderungen abgleichen und gegen eine Normalform verstossen.

    Bei a) Wäre es auf den ersten Blick die beste Möglichkeit, da aber viele Datensätze zu erwarten sind. Wird dies zunehmend langsamer.

    und b) scheint dann die Lösung zu sein allerdings werde ich dann gegen eine Normalform verstossen müssen.

    Performance ist schließlich wichtiger als eine Normalform.
    [color=blue]MfG Payne_of_Death[/color]

    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
    [color=red]Merke:[/color]
    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

    Murphy`s Importanst LAWS
    Jede Lösung bringt nur neue Probleme
    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

  • #2
    bezahltid gibt den monat an, für den bezahlt wurde und ist verschieden vom zahltag (ich kann am 1.3. für januar zahlen?)?

    speichere doch statt bezahlt-id einfach 2004-01, das hilft dir genauso weiter und du spoarst dir drei tabellen (month, year, month_year)

    aber du solltest dir da nochmal grundlegende gedanken machen

    wenn ich dir geld überweise, wie bildest du das ab?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Original geschrieben von mrhappiness
      bezahltid gibt den monat an, für den bezahlt wurde und ist verschieden vom zahltag (ich kann am 1.3. für januar zahlen?)?

      ja...u.A. wird jemand via Onlinebanking in einem variablen Zeitraum die Buchungen exportieren und diese ins Script importieren.

      Das dient dazu offene Buchungen aufzuzeigen. Für Quartalszahlungen wird in einem Rutsch für das jeweilige Quartal ein Insert gemacht in user_bezahlt

      speichere doch statt bezahlt-id einfach 2004-01, das hilft dir genauso weiter und du spoarst dir drei tabellen (month, year, month_year)
      ich könnte mir 2 Tabellen sparen. Jedoch muss ich aus der Relation von den Monaten je Jahr zu user_bezahlt ermitteln. Welche Einträge Einträge aus Monate/Jahre in user_bezahlt nicht vorhanden sind.

      wenn ich dir geld überweise, wie bildest du das ab?
      Aus der Relation zwischen Monate/Jahr und user_bezahlt.
      Einträge die hier nicht vorkommen aber in Monate/Jahr signalisieren
      -> bezahlt
      -> nicht bezahlt

      Mit anderen Worten ich muss die Relation aufrechterhalten. Das Schema hier ist ein Grobkonzept und war die spontan beste Idee.

      Wichtig ist der aktuelle Kontostand und ob die nächste Verbindlichkeit gezahlt werden kann.

      Aber du hast recht es ist zu wässrig und an manchen Stellen nicht akzeptabel.

      Nebenbei ich glaub im Brainstorming würde der Thread mehr sinn machen als hier.
      [color=blue]MfG Payne_of_Death[/color]

      [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
      [color=red]Merke:[/color]
      [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

      Murphy`s Importanst LAWS
      Jede Lösung bringt nur neue Probleme
      Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
      In jedem kleinen Problem steckt ein großes, das gern raus moechte.

      Kommentar


      • #4
        Original geschrieben von Payne_of_Death
        Nebenbei ich glaub im Brainstorming würde der Thread mehr sinn machen als hier.
        *schubs*


        btw: wenn nur EIN konto pro user abgebildet werden soll, wozu die tabelle "bankverbindung" ?
        Zuletzt geändert von Wurzel; 15.08.2004, 17:41.
        Kissolino.com

        Kommentar


        • #5
          Original geschrieben von Wurzel
          *schubs*


          btw: wenn nur EIN konto pro user abgebildet werden soll, wozu die tabelle "bankverbindung" ?
          danke fürs Verschieberlie spielen

          me Konto mit Ab- und Zugänge

          als eindeutiges Merkmal zur Identifikation der User dient die Kontonr. mit der Bankleitzahl.
          Zumindest in diesem Script.

          Die User Table kommt aus dem zentralen Berechtigungssystem...
          [color=blue]MfG Payne_of_Death[/color]

          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
          [color=red]Merke:[/color]
          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

          Murphy`s Importanst LAWS
          Jede Lösung bringt nur neue Probleme
          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

          Kommentar

          Lädt...
          X