Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbankaufbau/Speicherung von Daten

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

  • Datenbankaufbau/Speicherung von Daten

    Ich möchte gern wissen wie man am besten Arbeitszeit und Pausenzeit, inklusive Arbeitsvorbereitungszeit und Abreitsnachbereitungszeit abspeichert.

    Das heisst wie müssten die Tabellen aussehen, und wie bekomme ich dann die tatsächliche Arbeitszeit herraus.

    Der Grund ist folgender:

    Ich möchte eine Art Kalender machen, in dem die Zeiten geplant werden. Der Einsatz der Leute soll ja aber auch ausgewertet werden, und da dürfen keine Überschneidungen bei Schichten auftreten.

    Ein Beispiel:

    Frühschicht 6-14 uhr
    Spätschicht 14-22 uhr
    Nachtschicht 22-6 uhr

    bei sagen wir 30 min Pause ergeben sich ja schon wieder andere Zeiten.

    Speichert man die Pause nun mit ab? oder macht man das besser im Programmcode?

    Leider ergaben Suchmaschienen nur sehr ungenaue oder gar keine Ergebnisse. Kann mir jemand helfen?


  • #2
    Zuerst solltest du dir mal gedanken machen was du in der Tabelle genau speichern willst. Dann suchst du dir ein Dateiformat für deine Zahlen aus. Ich würde dir Kommazahlen mit 2 Stellen hinterm Komma empfehlen. Ich glaube das wäre float ( zumindest in C++ ). Die Pausen solltest du auch als Pausen mit in die Tabelle nehmen. Dann kannst du die Pausen einfach von der Gesamtzeit abziehen. Dann baust du dir ein paar Eingabeformulare in die du die Daten eingibst und mit INSERT in die DB überträgst. Verändern kannst du die Werte mit Update. Dann kannst du mit Abfragen ganz einfach rechnen und wieder auf der DB sichern. Wie genau musst du natürlich selbst lernen, das nimmt dir keiner ab. Ich hoffe diese grobe Vorgehensweise kann dir wenigstens ein wenig helfen...
    www.styleschmiede.de

    Kommentar


    • #3
      Vielen Dank für deine Antwort, aber

      Zuerst solltest du dir mal gedanken machen was du in der Tabelle genau speichern willst.


      Meine Frage war ja nicht was sondern wie ich Pausen und Arbeitszeiten am besten speichern kann.


      Dann baust du dir ein paar Eingabeformulare in die du die Daten eingibst und mit INSERT in die DB überträgst. Verändern kannst du die Werte mit Update. Dann kannst du mit Abfragen ganz einfach rechnen und wieder auf der DB sichern.

      Danke für die Infos, aber das brauche ich nicht und kann ich seit meinem letzen Projekt


      Mir geht es um einen cleveren Aufbau der Tabellen und um eine effiziente Art der Speicherung der Daten.

      Kommentar


      • #4
        Ok, ich wußte ja nicht ob du absoluter Anfänger bist oder dich auskennst, sorry war nicht böse gemeint.

        Mir geht es um einen cleveren Aufbau der Tabellen und um eine effiziente Art der Speicherung der Daten.
        Das kann nur jemand machen der detailliert weiß, was genau und wie du was vorhast. VIeleicht kann dir jemand anders mehr helfen. Dazu kenn ich mich nicht gut genug aus...
        www.styleschmiede.de

        Kommentar


        • #5
          Zeig doch mal ein paar Beispieldaten, damit lässt sich am besten arbeiten

          Kommentar


          • #6
            Zitat von drieling Beitrag anzeigen
            Zeig doch mal ein paar Beispieldaten, damit lässt sich am besten arbeiten
            also eine Personaltabelle existiert, über deren Personalid muss die Verknüpfung erfolgen.
            Und an sich gibt es keine weiteren Beispieldaten. Es gibt nur noch eine Art Rahmenbedingung, das es variable Schichten und Pausenzeiten gibt.

            also 6-14uhr + 30 min mittag

            8-16uhr + 30 min mittag

            22-6 uhr + 60 min pause

            edit: kein Problem Orlondo, habs ja auch nicht bös gesehen

            Kommentar


            • #7
              wie sehen die Beziehungen aus? 1 Mitarbeiter hat exact einen Arbeitszeiteneintrag? Dann so:

              arbeitszeit// arbeitszeit_id (PK), arbeitszeit_anfang, arbeitszeit_ende, dauer_pause, personal_id (FK)

              Wenn 1 Mitarbeiter verschiedene Arbeitszeiten haben kann, dann machst du noch folgendes:

              personal_id aus arbeitszeit entfernen
              arbeitszeit_personal// arbeitszeit_id(FK), personal_id(FK)

              Kommentar


              • #8
                naja da es variable schichten sind war eine überlegung für jeden mitarbeiter für jeden tag ein extrag eintrag zu machen, da die pause ja auch variabel ist.

                selbst wenn dieser die ganze woche die selben zeiten hat. oder wären zeitraumangaben da günstiger?

                die daten sollen ja persistent gespeichert werden.

                Kommentar


                • #9
                  ach ich habe dich missverstanden

                  du brauchst nur die erste Tabelle machst dann eine tabelle

                  arbeitszeit_tag// arbeitszeit_id, tag_id

                  dann kannst den Tag mit den Arbeitszeiten Verknüpfen

                  Kommentar


                  • #10
                    also ist eine extratabelle für die tage günstiger als die tage gleich zur arbeitszeit mit reinzunehmen? wenn ja warum?

                    Kommentar


                    • #11
                      oh pardon, stimmt, es wäre glaube ich intelligenter den tag in der arbeitszeit mit zu speichern, da du die arbeitszeiten ja nicht "wiederverwendest" für andere Tage. somit hättest du dann 1:N und brauchst keine Beziehungstabelle mehr

                      Kommentar

                      Lädt...
                      X