Datenmodell für Dienstplan

mohikaner

Neuer Benutzer
Beiträge
2
Hallo,

ich sitze gerade auf dem Schlauch.
Ich möchte einen Dienstplan in einer Datenbank abspeichern.
Dabei will ich bestimmte "Dienste" als Muster ablegen, die man dann den Mitarbeitern an einzelnen Tagen zuweisen kann.

Die Dienste enthalten je Tag verschiedene "Arbeitsbereiche" wie z.B. (es ist für eine Kindertagesstätte)

- Küche
- Hausaufgaben
- Krippe
- Vorbereitungszeit
- Pause
- Dienst am Kind
usw.

Die Einrichtung arbeitet vom 07.00 Uhr bis 17.00 Uhr. Da sich die Dienstanfänge und ~ende immer auf eine volle Viertelstunde beschränken, hatte ich bisher den Tag von 07.00 Uhr an bis 16.45 Uhr in "Viertelstundenblöcke eingeteilt und diese als String mit 44 Zeichen je Tag abgespeichert. Die Stelle im String hat dann die betroffene Zeit (Viertelstunde) festgelegt, das Zeichen hat den Arbeitsbereich bezeichnet.

Da ich das jetzt in eine mySQL-Anwendung nachbauen will (vorher war wie so oft Excel), frage ich mich, ob es da eine elegantere Möglichkeit gibt, oder ob ich das dort genauso machen kann/soll.

Eigentlich würde ich bei der Grundstruktur gerne Flexibler bleiben (sprich notfalls Minutengenau) einen Dienst/Arbeitsbereich am Tag speichern können und auch die Betriebsszeiten nicht schon durch das Design auf 07.00 - 17.00 Uhr festlegen (falls sich das mal ändert, will ich nicht unbedingt das DB-Design anpassen müssen).

Lezteres wäre ja kein Problem, da ich ja nur die Länge des Strings auf 24 h (24*4 =96 Zeichen) verlängern müsste.

Aber gibt es zur Speicherung keine elegantere Lösung?

Schon mal vorab Danke für Ideen und Anregungen (ich brauche keine fertige Lösung, nur die richtige Idee - vielleicht habe ich ja Glück))

Gruß, Jörg H.
 
Werbung:
AW: Datenmodell für Dienstplan

Ein paar Gedanken (Tabellen) zu einem möglichen Datenmodell

Code:
/**
* Mitarbeiter
*/
CREATE TABLE mitarbeiter (
 m_id INT NOT NULL,
 name VARCHAR(50) NOT NULL,
 ...
);
 
/**
* Standard Tätigkeiten
*/
CREATE TABLE taetigkeit (
 t_id INT NOT NULL,
 von TIME NOT NULL,   -- von 7:00
 bis TIME NOT NULL,   -- bis 17:00
 taetigkeit VARCHAR(100) NOT NULL,   -- 'Küche'
 ...
 
);
 
/**
* Dienstplan
*/
CREATE TABLE dienstplan (
 d_id INT NOT NULL,
 datum DATE NOT NULL,
 t_id INT NOT NULL,    -- Verweis auc eine Standardtätigkeit (incl. Zeitraum)
 m_id INT NOT NULL,    -- wird von diesem Mitarbeiter gemacht
 ...
);

Vielleicht hilft es als Einstieg in das Thema..

Grüße
Thomas
 
Werbung:
AW: Datenmodell für Dienstplan

Hey, prima und danke.

Das war der entscheidende Tip, eine dritte Tabelle als "Vermittler" zwischen Dienst - Datum - Mitarbeiter.

Das muss ich gleich ausprobieren.

Ich wusste doch, es gibt eine einfache und übersichtliche Lösung - bin nur nicht drauf gekommen.

Danke und Gruß,
 
Zurück
Oben