Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Datenmodel korrekt?

Begonnen von Xoar, September 29, 2016, 15:03:52

⏪ vorheriges - nächstes ⏩

Xoar

Hallo Leute,

könnt ihr mal schauen ob das Datenmodel so korrekt ist?
Geplant ist einen Dienstplan zu bauen.

Ich möchte später ein Formular haben wo oben ein Datum eingetragen werden kann, dann als EndlosUnterformular alle Dienstposten angezeigt werden (einzelne Datensätze), wo ich rechts daneben in den Feldern dann den Name der Mitarbeiter eintragen kann, sowie die Startzeit und Endzeit des jeweiligen Mitarbeiters.

Tipps, Verbesserungen, Anregungen willkommen!

Danke

MzKlMu

Hallo,
was sind denn die DUZ ?
Warum eine Tabelle für das Datum, das kannst Du doch direkt eintragen.
Gruß Klaus

Xoar

Hi,

mit direkt meinst Du bei den Start-/Endzeiten der Mitarbeiter an dem Tag, oder in das FDatum Feld?

DUZ sind Sonderzuwendungen für z.B. Nachtarbeit, Wochenendarbeit...

MzKlMu

Hallo,
ja, das Datum direkt in das Feld FDatum.

Was wird in den DUZ erfasst, bzw. was kommt da in die 4 Felder der Tabelle "tblDUZ" ?
Gruß Klaus

Xoar

#4
Wenn ich weiter drüber nachdenke ist das tatsächlich so falsch.
Ich brauche eine Tabelle wo der Mitarbeiter drin steht, und dann die Dienstschicht eingetragen wird (irgendwie automatisch) und dann nach fest definierten Parametern eingetragen wird (automatisch später) wieviel Stunden in welchem Feld.

ums deutlicher darzustellen wie ich das meine:
Mitarbeiter A
Diensttag:        Mo-Fr          Sa          So        Sonstige
29.09.2017      8 (Std)   
30.09.2017                      8 (Std)
....

also kommt die eine tblDUZ weg und in tblMitarbeiterDUZ kommen:
ID
FvonZeit (datum)
FMitarbeiterID (zahl)
MoFr (zahl)
Sa (zahl)
So (zahl)
Sonstige (zahl)
Kommentar (text)

MzKlMu

Hallo,
die Sache mit der DUZ halte ich für falsch, eher sogar für überflüssig.
Du erfasst ja die Dienstzeit mit Datum und Zeit und da lässt sich doch auf die Stunde genau ermitteln was Mo-Fr, was Sa und was So ist.

Und (nicht) nebenbei. Nenne die ID Felder nicht einfach ID, vor lauter ID weißt Du nicht mehr welche. Es ist zweckmäßig die ID nach der Tabelle zu benennen. Also MitarbeiterID und an den Fremdschlüssel hängt man dann ein _F an, also MitarbeiterID_F. Das gilt sinngemäß für alle ID Felder. Es ist zweckmäßig Primärschlüssel und Fremdschlüssel eindeutig zu erkennen. Es ist auch vorteilhaft, wenn es in der ganzen DB über alle Tabellen keine gleichen Feldnamen gibt.

Und verwende keine Nachschlagefelder in den Tabellen.
Gruß Klaus

Xoar

Alles klar, werde ich umbenennen.

Mit dem Duz hört sich ja gut an, spart Eingaben.
Wie man diese Abfrage definiert müsste man dann nochmal schauen.
SQL ist leider noch nicht so ganz meins.


Xoar

#7
Hi, hab es jetzt doch so gemacht das ich eine tblDatum hab und dieses Feld mit Datum_F in tblDienstplan verknüpfe.

Damit ich die Dienstpläne jeweils nach dem Datum durchgehen kann.

Jetzt kommt aber das Problem:
Ich habe ein HF mit dem Datumsfeld und als UF eine Abfrage aus tblDienstplan und tblDienstposten. Das UF Datum_F mit Datum aus dem HF verknüft. 

Klappt auch super, aber ich hatte nen leftjoin im UF gemacht, sodass ich immer alle Dienstposten sehe und dann gemütlich rechts daneben ein Mitarbeiter zuweisen konnte. Das geht jetzt als UF nicht mehr. Nur wenn ich das UF einzelnt anwähle ohne HF, sehe ich alle Dienstposten, kann man das auch irgendwie lösen?

Xoar

ok habs indirekt gelöst, indem ich mit einer Anfügeabfrage einfach schonmal für das ganze Jahr jedem Tag alle Posten zugewiesen habe. Mit der Zeit kommen dann halt jetzt die Mitarbeiter dazu.

MzKlMu

Hallo,
wozu eine Tabelle für das Datum, Du kannst doch das Datum direkt in das Feld "Datum_F" reinschreiben. Die extra Tabelle ist doch da völlig überflüssig. Das Feld heißt dann natürlich einfach Datum.

Was versprichst Du Dir von der extra Tabelle für das Datum ?
Gruß Klaus

Xoar

Hi, evt liegt ja auch einfach ein Denkfehler bei mir vor.

Ich verspreche mir davon, dass ich dann oben im Formular einmalig ein Datum eintragen kann und dann passend dazu den richtigen Dienstplan sehe, oder halt erstellen kann.
Ich möchte nicht bei jedem Mitarbeiter das Datum eingeben müssen, wenn ich einen neuen Dienstplan erstelle, sondern lediglich einmal oben im HF.

Mit ist jetzt kein anderer Weg eingefallen wie ich das machen soll, oder Brett vorm Kopf ;)


MzKlMu

Hallo,
jetzt verstehe ich was Du meinst. Dann würde ich aber einen Schritt weiter gehen und eine richtige Kalendertabelle anlegen. Ich mach Dir mal einen Vorschlag. Damit ich nicht vor vorn beginnen muss, lade mal die DB hier hoch (nur die Tabellen), mit einigen Beispieldatensätzen. Ich brauche aber unbedingt das MDB (Access2003) Format.

Ich komme aber erst heute Abend dazu.

PS:
Geht es hier um eine Feuerwehr ?
Gruß Klaus

Xoar

Huhu, bin selbst leider erst Sonntag wieder auf der Arbeit, sprich werd ich dann machen.

Jo ne Feuerwehr.

Xoar

Also ich habe eine tblKalender, da sind alle Tage des Jahres im Datumsformat eingetragen, direkt als Primärschlüssel. Dieses habe ich mit tblDienstplan dem Feld Datum_F in Beziehung gesetzt.

Dadurch kann ich jetzt jedem Tag ein Dienstplan zuordnen. Das klappt auch wunderbar.

Wie würdest Du das weiter angehen?

Xoar

So Hallo MzKlMu,

hab eine Bspdatenbank von mir hochgeladen.

Merke aber, dass ich noch so einige Probleme habe das umzusetzten.
Angedacht war eigentlich, dass ich im HF oben ein Datum auswähle, dann um UF alle Positionen aufgelistet habe und rechts im Feld daneben die Mitarbeiter eintragen kann. Die beiden Felder rechts daneben "vonZeit", "bisZeit" sollen eigentlich vorgefüllt sein, aber änderbar!. Hab das momentan über ne VBA Schleife gemacht, was aber zur Zeit noch in der falschen Ereigniseigenschaft ist.

Standartzeit ist immer 07:30 - 07:30 (24h)

Kannst ja mal drüber schauen und gucken was besser zu machen ist.

Danke im Vorraus und Grüße

*mdb 2003 in Zip