Access Datenbank erstellen

Liebe Experten
Ich habe folgende Aufgabe im Access. Leider habe ich den Durchblick verloren.

Das sind die Anforderungen an eine Event-Management-Datenbank:

Mehrere hundert Gäste werden erwartet. Eine Ihrer Aufgaben besteht darin, die freiwilligen Helfer für das Fest einzuteilen. Da die Helfer selbst mitfeiern wollen und jeweils nur für eine begrenzte Zeit (z.B. ein bis zwei Stunden) zur Verfügung stehen, müssen Sie relativ viele Helfer koordinieren. Die Helfer wollen zudem nicht an irgendeinem Stand eingesetzt werden, sondern sie haben gewisse Vorlieben. Ausserdem gibt es Stände (z.B. die Kasse), die gewisse Anforderungen an die Helfer stellen. Um diese komplexe Koordinationsaufgabe komfortabel und in angemessener Zeit bewältigen zu können, beschliessen Sie, sich ein Datenbanksystem aufzubauen.

Neben den bereits erwähnten gibt es einige weitere Rahmenbedingungen, die zu beachten sind: Als Helfer kommen Lehrer, Schüler und Eltern in Frage. Diese geben Ihnen Wünsche an, an welchen Ständen sie helfen wollen und in welchem Zeitfenster. Ausserdem bringen Sie die Kompetenzen der Helfer in Erfahrung (z.B. Sicher im Umgang mit Geld, Verträgt Spülwasser, Kann Bier zapfen). Und im Gegenzug legen Sie bei den Ständen fest, welche Kompetenzen benötigt werden.

Jeder Stand muss wegen des hohen Besucheraufkommens mit mehreren Helfern belegt werden. Sie wollen festlegen können, zu welchen Uhrzeiten wie viele Helfer vorhanden sein müssen. Da die Schüler grösstenteils noch nicht volljährig sind, und dazu tendieren, Quatsch zu machen, muss pro Stand zu jeder Zeit mindestens ein Lehrer oder ein Erwachsener als Aufsichtsperson eingesetzt werden.

Aus dem Event-Organisationssystem sollen die folgenden Berichte erstellt werden können.

•Die Stände mit den erforderlichen Kompetenzen
•Die Belegung pro Stand mit Helfern, Kategorie und Zeit
•Die Einsatzpläne pro Person

Wie sieht hierbei ein mögliches Relationenmodell aus???

Vielen Dank für Eure Hilfe. Ich komme sonst nicht weiter. Das Programmieren im Access stellt aber kein Problem dar.

Liebe Grüsse
eagertolearn

Hallo EagerToLearn,

vorab, das ist schon eine heftige Anfrage, sieht für mich nicht wie eins der üblichen Probleme hier aus, eher wie eine Abschlussarbeit einer EDV-Schulung… aber sei es drum.

Was Du schon richtig aufgezeigt hast, ist hier die Herausforderung beim Datenbank–Design zu suchen und um die Relationen zu formatieren musst Du Deinen Eigenen Text einfach umsetzen…‚einfach‘ fand ich jetzt selber echt gut :smile:, denn ich weiß ja nicht, wie gut Du mit einer Relation und einer Normalisierung umgehen kannst.

Um es mit wenigen Worten zu erklären…oder es zu ersuchen:
Schreib alle Stichwörter, die in die Datenbank müssen untereinander auf und teil sie dabei so ein, dass Du die Daten, die zusammen gehören, gleich zusammen gruppierst und ob eine Mehrfachangabe möglich ist.

  • Gastname, einfach

  • ist Helfer, bool, einfach

  • Helfer-Alter, Zahl, einfach

  • Vorliebe, Freitext, mehrfach

  • Kompetenz, Freitext, mehrfach

  • Gasttyp (Lehere, Elternteil, Schüler…), Freitext, einfach

  • Zeitfenster für Stand X, mehrfach

  • Stande, einfach

  • Zeitfenster, mehrfach

  • benötigte Stand-Kompetenz, mehrfach

Für das kleine Bespiel oben kommt jetzt die 1. und 2. Normalisierung… also für Daten, die nicht für alle gelten, die sich ständig wiederholen oder wo eine Mehrfacheinteilung notwendig ist, werden Hilfstabellen mit Schlüsseln aufgebaut

Haupttabellen
gaeste -> index(K1), name, vorname, ist_helfer
staende -> index(K5), standname, notwendige_helferanzahl

Hilfstabelle n
helfer -> index, index_gaeste(K1), helfer_alter, gasttyp_key(K2)

gasttyp -> index(K2), gasttyp

kompetenzen -> index(K3), kompetenz

vorlieben -> index(K4), vorliebe

Verknüpungstabellen
Helfer->Kompetenzen
helfer_2_kompetenz -> index, index_gaeste(K1), index_kompetenz(K3)

Helfer-> Vorlieben
helfer_2_vorliebe -> index, index_gaeste(K1), index_vorliebe(K4)

Stand->notwendige Kompetenzen
stand_2_kompetenz -> index, index_stand(K5), index_kompetenzen(K3), midestalter

Stand -> Belegungszeiten
stand_belegung -> index, index_stand(K5), startzeit, endzeit, notwendige_anzahl_helfer

Stand -> Belegung
stand_2_helfer -> index, index_stand(K5), index_helfer(K1), startzeit, endzeit

Mit den Tabellen sollte es möglich sein, das man die entsprechenden Standbelegungen machen und dabei die Vorlieben und Vorgaben entsprechend berücksichtigen kann.
Die Auswertungen sind dann nur einfache Abfragen und diese Abfragen sind dann die Grundlage für Deine Berichte.
Irgendwie fehlt mir bei der Einteilung aber noch, wie die Verhältnisse unter den Gästen/Helfern ist, als Vater von, Mutter von, Lehrer von, Schüler von und Kind von … evtl. ist Geschlecht auch nicht gerade unwichtig (also Frauen für Sektbar und Männer für Wiskey *G* )

Ich hoffe, Du kommst mit dem Ansatz zurecht.
LG,
Burkhard

Anm.: eagertolearn oder eager-to-learn ist ein geschüzter Begriff *G*

Hallo Eagertolearn,

die DB erfordert 3 Tabellen: Standdefinition, Standpersonal und das wichtigste Standeinteilung.
In Standdefinition sind die einzelnen Stände beschrieben mit den erforderlichen Kompetenzen. Der Primärschlüssel ist auf den Standnamen gesetzt.
In Standpersonal sind die einzelnen Helfer (Primärschlüssel!) mit Art (Nachschlagefeld Schüler, Lehrer, Eltern), die Kompetenz und die Wunschverfügbarkeit von bis und auch die persönliche Quali festgelegt.
Die Standeinteilung ist dann die Tabelle, in welcher die einzelnen Stände mit den Belegungen definiert werden. Dazu ist ein Formular mit Nachschlagefeldern und Unterformular für die Personen sehr hilfreich um die Verwendung der Personen zu beurteilen.
Neben diesen Basistabellen gibt es dann die Berichte, die als Ausdruck mit den gewünschten Infos gestaltet werden können.

Eine VBA-Programmierung sehe ich hier nicht, da die ganzen „Wenn“-Möglichkeiten einen unvertretbaren Aufwand bedeuten würden.
Ich habe so etwas schon mal für eine Eventagentur programmiert (uff, uff).

Viel Vergnügen
Reinhold
IT-Trainer und DB-Entwickler

Hallo eagertolearn

Hast Du das Prob gelöst? Wenn nein, was hast Du bereits?

Eventuell wäre es hilfreich, wenn Du die bereits alle gewünschten Felder auflisten würdest, denn es ist eine Heidenarbeit, ein ERM zu erstellen!

Liebe Grüsse, Henri.