Neuigkeiten:

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

Mobiles Hauptmenü

Möchte Datenbank erstellen lernen

Begonnen von miss_marple, Dezember 11, 2010, 19:06:56

⏪ vorheriges - nächstes ⏩

miss_marple

Hallo, liebe Netzgemeinde!
Bin neu hier und hoffe, ich hab das richtige Board erwischt.
Hier meine Frage:



Gesucht: Datenbank für Kursteilnehmer in einer Ganztagsschule

Unsere offizielle, behördliche Schülerdatenbank gibt uns keine Möglichkeit, die Kursdaten der Schüler
einzugeben. In Excel habe ich mir bisher eine Tabelle angelegt und kann mit "Autofilter" eingeschränkt
brauchbare Listen ausgeben, leider geht aber nicht alles so, wie ich das gern möchte, weil dann die Tabelle
unüberschaubar und die Eingabe der Daten fehlerträchtig wird.

Ich wünsche mir also eine Datenbank, habe aber leider nur Minimalkenntnisse.

Frage 1:Gibt es ein verständliches Lehrbuch / Onlinetraining / eine Beispieldatenbank, 
womit ich das Erstellen von einfachen bis mittelkomplizierten Datenbanken lernen kann?

Frage 2: (nur wer noch Lust hat, sich das mal anzuschauen)
Ich habe unten die Kriterien notiert, die ich mir wünsche.
Ist das schon eine "verschachtelte" Datenbank oder gehört sie noch zu den eher einfachen Fällen?
(Wegen des Lernaufwands ...)

MfG und danke fürs Lesen!

miss_marple

*********************************************************************

Kriterien für meine Kursdatenbank:


Die Schüler der verschiedenen Klassen können an jedem Tag einen Kurs wählen, sie müssen aber nicht.

Ich möchte nach folgenden Feldern filtern und übersichtlich ausdrucken können:


- Name des Schülers (> welche Kurse besucht ein bestimmter Schüler?)

>>>    Bernd Beispielkind    
      Montag Breakdance
      Dienstag ---
      Mittwoch Fußball
      usw.



- Klassenliste mit Kursen (> Alle Schüler einer Klasse und alle ihre Kurse)

>>>    5a
      Adam Apfel
         Montag ---
         Dienstag Kochen
         Mittwoch ---
         usw.
      Berta Blümchen
         Montag Nähen
         Dienstag Tanzen
         Mittwoch Lesetraining
         usw.
      Claudia Christen
         Montag ---
         Dienstag Kochen
         usw.
      usw.



- Kursteilnehmer-Liste (> Welche Schüler besuchen einen bestimmten Kurs?)

>>>   Kochkurs
      5a    
         Adam Apfel
         Claudia Christen
         Gerda Glücklich
      5b    
         Darius Doppelkinn
         Helga Hoffnung
         Ingo Irgendwo
      usw.
   

- Anwesenheit pro Wochentag (> Welche Schüler besuchen an einem bestimmten Tag einen Kurs?)

>>>    Montag
      5a
         Berta Blümchen
         Sophie Sauer
         Tim Taler
      5b
         Emil Eckensteher
      6a
         Fritz Fröhlich
         Karin Kugelrund
      usw.


- Kombinationen davon, z.B. "Alle Schüler der Klasse 5b, die am Donnerstag einen Kurs besuchen"


Felder: Vor- und Nachname, Klasse, 5 Wochentage,
Kursbezeichnungen unter den Wochentagen in einer Auswahlliste

oma

#1
Hallo,

du bist hier garantiert richtig ;D

zunächst  musst du ein normalisierten Tabellenaufbau realisieren. Als Vorschlag aus den bisherigen Angaben u. in der "Ahnung" weiterer Auswertungen:

tblSchueler: Schueler_ID, Klasse_ID, Vorname, Nachname, DatumGeburt,....
tblKlasse: Klasse_ID, Lehrer_ID, Bezeichnung, ....
tblLehrer: Lehrer_ID, Nachname, Vorname,....
tblKurse: Kurs_ID, Bezeichnung
tblSchuelerKurse: Teilnahme_ID, Kurs_ID, Schueler_ID, Lehrer_ID, DatumVon, DatumBis,...

Überprüfe mal, ob du mit den Vorschlag zurecht kommst.

Gruß Oma

PS: Möglich ist auch noch eine Tabelle :

tblKursPlan: Kurs_ID, DatumVon, DatumBis,...

und dann in Tabelle tblSchuelerKurse keine Datumsfelder

einfach mal alles prüfen, was für deine Bedingungen richtig bzw zweckmäßiger ist!!!
nichts ist fertig!

miss_marple

Zuerst mal vielen Dank fürs Helfen.

Ich habe inzwischen die von dir vorgeschlagenen Tabellen erstellt (Access 2007), allerdings brauche ich wirklich nicht so viele Felder. Geburtsdatum spielt z.B. keine Rolle / Klassenlehrer und DatumVon... auch nicht usw.

Habe teilweise Probleme mit den Begriffen. Beispiel: "Nachschlagespalte" um in einer Tabelle eine Verknüpfung zu einer anderen Tabelle anzulegen. Da muss man erstmal drauf kommen, was das bedeutet.

Nun stecke nochmal fest:

Ich brauche an Feldern wirklich nur

Schülername
Klasse
Kursbezeichnung
die 5 Wochentage Mo - Fr

Das Problem ist die Art der Verknüpfung.
- Ein Montagskurs "Kochen" darf nicht am Dienstag auswählbar sein (gilt für die anderen Tage genauso).
- Ein Schüler kann keine 2 Montagskurse belegen.

Später möchte ich getrennt abfragen können: z.B. "Alle Schüler, die montags einen beliebigen Kurs besuchen"
aber auch: "alle Schüler die den Kurs Kochen besuchen".
Wie verknüpfe ich die Wochentage mit den Kursbezeichnungen am geschicktesten?

Vorhin hatte ich mal eine Tabelle "Wochentage" angelegt. Aus nicht nachvollziehbaren Gründen hatte ich plötzlich bei jedem Wochentag ein kleines Plus-Zeichen, da drin erschien eine Untertabelle "Kurse" und ich konnte unter Montag alle Montagskurse mit eigener ID eintragen.
Leider habe ich diese Tabelle gelöscht und nun weiß ich nicht, wie diese "Untertabelle" entstanden ist. Ich bin auch nicht sicher, ob die genau das gewesen wäre, was ich gewollt hätte.

Und noch eins:
In meiner tblSchueler ist der Name als Feld und die Klasse als verknüpftes Feld (Nachschlagespalte aus tlbKlasse) enthalten.
Beides möchte ich in einer tlbKursteilnehmer erscheinen lassen. Die Zuordnung Name und Klasse soll erhalten bleiben - ich will doch nicht schon wieder jedem Schüler die richtige Klasse zuweisen müssen.


Sorry, es sind viele Fragen.
Sogar für eine Teil-Hilfe wäre ich sehr dankbar.

MfG
miss_marple

oma

Hallo,

ein Vorschlag: Stelle zunächst deine Tabellen einmal vor, da ich sonst auf deine Fragen nicht so recht antworten kann.

Ein zweiter Vorschlag entferne alle Nachschlagfelder aus den Tabellen. Dies ist zwar möglich, hat aber dermaßen viele Nachteile, das ihre Benutzung einfach "Mist!" ist!!

Richtigerwiese erstellt man Tabellen nicht mit Nachschlagefeldern sondern mit Primärschlüssel und Fremdschlüssel u. stellt dann die Beziehungen im Access-Beziehungenfenster ein (Extras ---> Beziehungen)

Zu deinen  Frage
1. 
ZitatDas Problem ist die Art der Verknüpfung.

Wenn ein bestimmter Kurs immer an einemm bestimmten Wochtag statfindet, so muss das in der Tabelle festgehalten werden:

tblKurse: Kurs_ID, Wochentag_ID, Bezeichnung
tblWochenTage: Wochentag_ID, Tagbezeichnung

dami ist auch die Frage: Wie verknüpfe ich die Wochentage mit den Kursbezeichnungen am geschicktesten?
eigentlich beantwortet.

2.
- Ein Montagskurs "Kochen" darf nicht am Dienstag auswählbar sein (gilt für die anderen Tage genauso).
- Ein Schüler kann keine 2 Montagskurse belegen.


Diese Fragen können in ein Eingabeformular geregelt werden!
Das ist auch ein Grund dafür, dass man in einer DB den User garnicht mit den Tabellen arbeiten läßt, sondern alle Eingaben, Änderungen  oder Löschungen immer über Formulare macht, da man hiermit "alles" kontrollen kann.

So kann z.B bei der Eingabe mit einem Formular in Tabelle blSchuelerKurse  geprüft werden, ob Datum (u. damit Wochentag) und Kurs (mit festgelegtem Wochentag aus Tabelle tblKurse )  vereinbar ist.


2. 
ZitatDie Zuordnung Name und Klasse soll erhalten bleiben - ich will doch nicht schon wieder jedem Schüler die richtige Klasse zuweisen müssen.

Die Zuordnung bleibt immer erhalten, du musst z.B. in Tabelle blSchuelerKurse  nur die Schueler_ID eingeben (in einem Formular mittels eines Kombifeldes) , Die Zuordnung zur Klasse ist immer aus der Tabelle tblSchueler ersichtlich u. braucht nicht mit bei jedem Schüler mit eingegeben werden!

Ich schlage folgendes vor:

Du stellst den Tabellenkonzept vor. Entweder in Textform (so wie mein Vorschlag) oder noch besser: du stellst eine DB mit Musterdaten ins Forum. Dan können wir immer schnell u. konkret was ändern bzw. was anderes vorschlagen

Hierbei sollest du auch schon die Beziehungen im Beziehungsfelster festlegenn (Schlüsselfelder verknüpfen u. referentielle Integrität festlegen, da das elementar wichtig für die weitere Arbeit ist)

Wenn das ok. u. alle deinen Anforderunge genügt, kann man ein entsprechendes Formulardesign mit all deinen Prüfmaßnahmen diskutieren!

Gruß Oma
nichts ist fertig!

oma

Hall miss,

nochmal, erstelle für blSchuelerKurse besser:

tblKursListe: Liste_ID, Kurs_ID, Lehrer_ID, DatumListe, ...   
tblKursListeTeilnehmer: Teilnahme_ID, Liste_ID, Schueler_ID, ....


Gruß Oma
nichts ist fertig!

miss_marple

Ich danke dir für deine ausführliche Antwort.
Leider habe ich zur Zeit keine Freizeit, um mich intensiver mit meinem "Wunschtraum" zu beschäftigen.
Hab mir aber ein Lesezeichen zu diesem Thread gesetzt. Nach Weihnachten wird's vielleicht was ...

Ich glaube, ich weiß noch weniger über diese Techniken, als ich geglaubt habe zu wissen. Hmmmm...

:-) miss_marple