Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Allgemeine Frage zur Struktur von Einsatzplanern

Begonnen von Carl, Mai 02, 2017, 18:24:19

⏪ vorheriges - nächstes ⏩

Carl

Hallo, ich habe mal eine allgemeine Frage.

Ich möchte einen Einsatzplaner (Dienstpläne) erstellen und habe mir eine Menge angesehen, die aber alle meine Vorstellungen nicht erfüllen. Die Mitarbeiter arbeiten schon lange mit Word-Dateien, die für die jeweils kommende Woche in einer neuen Kopie vorbereitet werden. Außerdem gibt es verschiedene Abteilungen, die ihre jeweils eigenen Word-Dateien haben. Das soll jetzt vereinheitlicht und verbessert werden.

Gegeben sind 2 Tabellen, eine mit den [MA] und eine für die Kalenderwoche [KW00] als Vorlage.

Frage:
Ist es beispielsweise sinnvoll bzw. möglich, in der DB für jede kommende Woche automatisch eine eigene Tabelle für die jeweilige KW## nach der Vorlage KW00 erzeugen zu lassen?

Oder ist es möglich, eine Tabelle anzulegen, die jede Kalenderwoche als einen Datensatz enthält und als "neuer Datensatz" automatisch eine neue Tabelle für die kommende Kalenderwoche anlegt? Wohlgemerkt es gibt ja auch noch N Mitarbeiter.

Was würdet Ihr empfehlen? Wie sollte denn die Struktur aussehen?

Carl

dedidado

Hallo Carl,
die Lösung "für jede KW eine Tabelle erzeugen zu lassen" ist schlichtweg ... - ok sagen wir einfach - keine Lösung, noch nicht mal ne schlechte.
Die Lösung kann neben der Mitarbeitertabelle nur eine sogenannte Zuordnungstabelle sein.
PK = MA + KW
oder vielleicht noch besser
PK = MA + EinsatzTag(=Datum)
aus dem Datum lässt sich dann sehr leicht (zur Anzeige oder Auswertung) die Kalenderwoche ermitteln.
Gruß Dieter

MzKlMu

Hallo,
wie gesagt, ist eine Tabelle für jede KW eine ganz, ganz schlechte Idee.
Und eine Vorlage braucht es erst recht nicht.

Was wird dann in der KW Tabelle gespeichert, bzw. soll gespeichert werden ?
Ist da jeder Tage mit Datum erfasst ?
Gruß Klaus

Carl

Zitat von: dedidado am Mai 02, 2017, 19:08:29
Hallo Carl,
die Lösung "für jede KW eine Tabelle erzeugen zu lassen" ist schlichtweg ... - ok sagen wir einfach - keine Lösung, noch nicht mal ne schlechte.

Ich hatte sowas schon vermutet, daher die Frage. OK, also eine Zuordnungstabelle ... mal überlegen...

MzKlMu

Hallo,
ob hier wirklich eine Zuordnungstabelle notwendig ist, kann man noch nicht erkennen.
Erkläre erst mal was in dem Einsatzplan erfasst werden soll. Hatte ich in #2 auch schon gefragt.

Sind die Mitarbeiter den Abteilungen zugeordnet, wenn ja wie ?

Gruß Klaus

Carl

Zitat von: MzKlMu am Mai 02, 2017, 19:11:56
Was wird dann in der KW Tabelle gespeichert, bzw. soll gespeichert werden ?
Ist da jeder Tage mit Datum erfasst ?

In der KW-Tabelle sollen alle Informationen der 5 Arbeitstage pro MA niedergelegt werden.

Felder:

* pro Tag 2 Textfelder
* pro Tag 1 Memofeld
* pro Tag 21 Ja/Nein-Felder für Termine, an denen der MA teilnehmen kann und die über eine Abfrage ausgelesen werden können um anzuzeigen, wer zu diesem Termin erwartet wird.

Die Beschreibung der Termine selbst sind in einer weiteren Tabelle abgelegt, da sie über das ganze Jahr hinweg gleich bleiben.

Das sind 120 Felder bislang.

Carl

Zitat von: MzKlMu am Mai 02, 2017, 19:34:21
Sind die Mitarbeiter den Abteilungen zugeordnet, wenn ja wie ?

Die MA sind den Abteilungen nicht eineindeutig zugeordnet. Es gibt MA, die mehreren Abteilungen angehören. Außerdem ändert sich die Abteilung ab und zu mal, weil es Projektarbeit ist und wenn das Projekt ausläuft kommt der MA in eine andere Abteilung usw.. Ich löse das mit einer [tblMAZuordnung], die dann über ein Listenfeld die jeweilige Anzeige steuert, das funktioniert problemlos.

Im Terminplaner sollen die Termine angezeigt werden, die der MA hat (Besprechungen, Teamtreffen usw..) und es soll ein großes Memofeld angezeigt werden, in das hinein er Vermerke schreibt, die alle anderen sehen können sollen.

Die Tabelle KW und ei Formular funktioniert problemlos, allerdings nur in einer KW. Ich möchte sozusagen eine neue "Dimension" hinzufügen.

Danke für deine Antwort.

MzKlMu

#7
Hallo,
Zitatpro Tag 21 Ja/Nein-Felder für Termine, an denen der MA teilnehmen kann und die über eine Abfrage ausgelesen werden können um anzuzeigen, wer zu diesem Termin erwartet wird.
Auch das kannst Du gleich wieder vergessen. Ja/Nein Felder in dieser Art sind für eine Datenbank völlig unbrauchbar.
Die Termine sind als Datensätze zu erfassen und nicht in 21 Ja/Nein Feldern.

Hier wird dann doch die angedachte Zuordnungstabelle benötigt. Mit nur 4 Feldern (Primärschlüssel, Datum, Fremdschlüssel zum MA und FS zum Termin). Nimmt ein Mitarbeiter an 10 Terminen teil, so entstehen in der Tabelle 10 Datensätze.
Auch 120 Felder in einer Tabelle lassen schlimmes ahnen. Was sind das alles für Felder ?
ZitatIch möchte sozusagen eine neue "Dimension" hinzufügen.
Datenbanktabellen sind so anzulegen, dass eine Tabelle durch neue Daten immer nach unten zunimmt (Datensätze werden mehr), niemals zur Seite und Anwachsen zur Seite bedeutet weitere Feldnamen und das darf in einer Datenbank nicht sein.
Ich fürchte, da musst Du noch mal neu anfangen. Gerade in einer Mehrbenutzerumgebung ist das Datenmodell das A und O.
Hast Du an die notwendige Aufteilung der DB in Backend (nur die Tabellen) und Frontend (der Rest) gedacht. Dabei kommt nur das Backend auf den Server, das Frontend benötigt jeder User auf seinem PC.

Zu den Ja/Nein Feldern:
http://allenbrowne.com/casu-23.html



Gruß Klaus

Carl

#8
OK, ich zieh mir das mal in Ruhe rein.

Nur noch eine Frage: Sind backend und frontend zwei Dateien oder weist man Formularen und Tabellen zu, jeweils eines von beiden zu sein?

Übrigens gibt es keine PC, sondern nur workstations in Zigarettenschachtelgröße, mit denen die Bildschirme auf die Cloud zugreifen. Dort liegen die Dateien. Es gibt keine lokalen Festplatten oder sowas. Lediglich individuelle Desktops

MzKlMu

Hallo,
das sind 2 Datenbanken. Im Frontend werden die Tabellen des Backends nur verknüpft.

Jeder Anwender benötigt eine Access Version, mindestens als Runtime.
Wie habt ihr das jetzt ?

Kann auf den Desktops jeweils für jeden Anwender Access installliert werden ?

Für eine sichere, zuverlässige Betriebsweis ist eine Aufteilung in Backend und je User ein Frontend unerlässlich, das hängt mit der Arbeitsweise von Access zusammen.
Wenn das nicht möglich ist, kannst Du Access nicht verwenden.
Gruß Klaus

Carl

#10
Hallo Mz

Jeder Anwender kann Access starten, also es ist niemand abgehängt. Ich denke das passt.

Hast Du irgendwo eine Beschreibung, wo die Grundlagen von Trennung von Back und Frontend so beschrieben werden, wie es für mich wahrscheinlich gut verständlich ist?

MzKlMu

#11
Hallo,
ZitatJeder Anwender kann Access starten,
das reicht nicht, jeder Anwender muss sein eigenes Access starten können. Ein anderer Anwender muss dann wieder sein eigenes Access starten. Jeder Anwender benötigt demzufolge auch eine eigene Access Lizenz. Entweder als Vollversion oder als Runtime (gibt es kostenlos von MS).
Wenn das nicht gewährleistet ist, kommen sich die Anwender gegenseitig ins Gehege.

Siehe hierzu:
http://www.sql-insider.de/knowhow/hintergruende-zur-arbeitsweise-von-access.php
Wenn Du bei Google nach "Backend Frontend Access" suchst, findet Du einiges. Z.B. das hier:
http://www.access-im-unternehmen.de/index1.php?id=300&BeitragID=370
Gruß Klaus

Carl

#12
Danke!

Da muss ich erstmal nachfragen. Oder kann man es irgendworan erkennen?

Genau genommen muss ja nur ein Anwender editieren. Die anderen fragen nur ab.

Ich würde mich erstmal auf die Zuordnungstabelle konzentrieren. Ist es möglich, ein Frontend nachträglich zu erstellen, wenn die Tabellenstruktur korrekt ist? Oder muss man gleich von Anfang mit zwei DB arbeiten?

MzKlMu

Hallo,
wo und wie oft bei Euch Access installiert ist musst Du erfragen, da ich keiner Erfahrung habe mit der bei Euch vorliegenden Konstellation kann ich dazu nichts sagen.
ZitatGenau genommen muss ja nur ein Anwender editieren. Die anderen fragen nur ab.
Das spielt keine Rolle, im Gegenteil das Abfragen dürfte auch das größere Problem sein, da da die meisten Daten bewegt werden.
Access läd zum Abfragen nicht immer alle Daten, sondern steuert das im Hintergrund in Teilen. Wenn es nur eine Version gibt, können die Daten der einzelnen Abfragen nicht mehr auseinander gehalten werden und die Datenbank kann korrupt werden was mit Datenverlust verbunden ist. Im 1.Link oben ist das genauer beschrieben.

Eine Datenbank kann problemlos auch nachträglich aufgeteilt werden. Access hat dazu auch einen Assistenten an Bord.
Gruß Klaus

Carl

Hab nochmal eine Frage. Was ist denn der Unterschied zwischen der Verknüpfung mit Zuordnungstabellen und einer Schachtelung von Tabellen nach dem Schema:

tabelle1[ID1]-->tabelle2[ID2],[FSvon1] -->tabelle3[ID3],[FSvon2]

Anstelle einer Zuordnungstabelle für alle drei Tabellen. Habe ich da einen logischen Denkfehler?