Neuigkeiten:

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

Mobiles Hauptmenü

Tabelle & Untertabelle

Begonnen von WaTrax, Oktober 28, 2011, 16:34:28

⏪ vorheriges - nächstes ⏩

WaTrax

Hallo Leute,

ich möchte mir gerne eine Datenbank für Software anlegen. Ich habe mittlerweile eine sehr große Zahl an Games und Tools für diverse Konsolen und den PC. Jetzt würde ich mir gerne eine Datenbank basteln, weiß aber leider nicht so genau, wie das funktioniert was ich vor habe.  ??? Ich hoffe, Ihr könnt mir da ein wenig weiterhelfen.

Hier als erstes die Erklärung, was ich vor habe:

Ich möchte mir eine Tabelle anlegen (Hauptdaten) mit folgenden Feldern : Programmname - Programm Art - Genre - System - Kaufdatum - Kaufpreis - Datenträger Anzahl - Datenträger Art - FSK ! Dann möchte ich mir eine zweite Tabelle anlegen (Unterdaten) mit folgenden Feldern : Programmname - Programm Art - Genre. Das ganze hat folgenden Hintergrund : Wenn ich in der Hauptdaten Tabelle meine Daten eingebe, dann soll auf dem Punkt "Genre" bei der Eingabe von "Sammlung" die Unterdaten Tabelle auf gehen und dort die Programme die sich auf der CD befinden eingetragen werden.
Bsp. : Ich gebe ein "Namco Sammlung" - "Game" - "Sammlung" u.s.w. ! Jetzt öffnet sich die Unterdaten Tabelle und dort gebe ich dann ein : Pac Man - Game - Geschick!

Das ganze könnte dann so aussehen :

Programmname     Programm Art     Genre          System ...
Namco Sammlung  Game                 Sammlung   XBox 360
Pac Man                Game                  Geschick ....

Wenn ich dann alle Unterdaten eingegeben habe, dann kann ich wieder zurück auf die Hauptdaten und ganz normal weiter machen. Das ganze soll dann in einen Bericht und von dort aus als PDF (das kann ich) :-)

Ich hoffe, ich habe mich nicht ganz so schlecht ausgedrückt und Ihr versteht was ich meine und könnt mir helfen. Vielen Dank.

database

#1
Hallo,

also im Sinne eines normalisierten relationalen Tabellenkonstrukts wirst du mit 2 Tabellen nicht auskommen.
Was auf jeden Fall NICHT geht, ist es 2 Tabellen mit den gleichen Informationen zu füttern - in der Art wie du es vorgestellt hast.

Das nächste Ding ist die Sache mit dem Datenerfassen ...
ZitatWenn ich in der Hauptdaten Tabelle meine Daten eingebe, dann soll auf dem...

KEINE Dateneingabe direkt in die Tabellen!
Für die Dateneingabe ist ausschließlich ein geeignetes Formular zu verwenden - alles andere kannst gleich vergessen, da bekommst du nur Probleme!

Schlage vor:
-------------------------------------------
tblCDDVD

CDDVD_ID  [Autowert]
Bezeichnung   [Text]
System_FK   [Zahl, LongInteger]
Kaufdatum    [Datum/Uhrzeit]
Kaufpreis    [Zahl, Double]
DTAnzahl   [Zahl, integer]
DTArt_FK    [Zahl, LongInteger]
ev. weitere Felder zur Beschreibung der DVD/CD
-------------------------------------------

-------------------------------------------
tblDTArt

DTArt_ID    [AutoWQert]
DTArt    [Text]
-------------------------------------------

-------------------------------------------
tblGenre

Genre_ID    [Autowert]
Genre    [Text]
-------------------------------------------

-------------------------------------------
tblSystem

System_ID    [Autowert]
SystemBezeichnung    [Text]
-------------------------------------------

-------------------------------------------
tblPArt

PArt_ID   [AutoWert]
Programmart    [Text]
--------------------------------------------

--------------------------------------------
tblCDInhalt

Inhalt_ID    [Autowert]
CDDVD_FK    [Zahl, LongInteger]
Genre_FK    [Zahl, LongInteger]
Programmart_FK    [Zahl, LongInteger]
Programmname    [Text]
FSK    [Zahl, Integer]
-------------------------------------------

Diese Tabellen sind dann über die Primärschlüssel (ID) und deren Fremdschlüssel (FK) in Beziehung zu setzen.
Beim Erstellen der Beziehungen ist im Eigenschaftsfenster noch das Häkchen bei Referenzieller Integrität zu setzen
Um jeweils eine 1:n Beziehung zwischen den Tabellen zu erstellen.

Wenn dieses Datenmodell erstellt ist, kann es mit ein paar Testdaten gefüllt werden.

Der nächste Schritt wäre dann die Formulare und Unterformulare für die Dateneingabe zu erstellen.
Danach folgen div. Abfragen um ev. unterschiedliche Berichte mit Daten zu versorgen
und schließendlich die Erstellung der Berichte und die Programmierung der PDF-Ausgabe auf Buttonklick.


HTH

WaTrax

Hallo !! Danke für die schnelle Antwort. Ich dachte es wäre etwas einfacher einzurichten. Naja, werde es demnächst mal versuchen.
Meine Datenbank soll halt so aussehen, wenn ich ins Genre "Sammlung" eingebe, dass das System merkt : Aha, da kommt noch was und öffnet die Untertabelle!!

database

Hallo,

jegliche Arten von Automatismen lassen sich über Formulare initieren oder ausführen.
Durch Tabelleneingaben geht da nix in der Richtung.  ;)


WaTrax

OK! Ich werde alles mal versuchen ... Bin gespannt ob es klappt :)

WaTrax

So, jetzt hatte ich ein wenig Zeit mich damit mal zu beschäftigen! Eine Frage kommt jetzt noch : Mit was setzte ich "Inhalt_ID" [Autowert] in Beziehung. Mir ist die Beziehung zwischen den ID und FK klar, aber was mache ich mit der Inhalt_ID???  ???

database

Hallo,

ZitatMit was setzte ich "Inhalt_ID" [Autowert] in Beziehung

Mit nix, 'Inhalt_ID' ist der Primärschlüssel der Tabelle 'tblCDInhalt'.
Der PK in dieser Tabelle ist zwar nicht ultimativ lebensnotwendig da die Tabelle die n-Seite einer 1:n Beziehung ist
es sollte aber keine Tabelle ohne PK geben ...

WaTrax

OK! Dann werde ich mal weiter basteln. Vielen Dank ersteinmal.  :)

WaTrax

Die Tabellen hab ich soweit aufgebaut und die Beziehungen verbunden. Die Dateneingabe erfolgt nur über ein Formular, richtig? Wie sage ich aber bei einem Formular, dass ich bei einem Game (Sammlung) mehrere Programme drauf habe? Nochmal das Beispiel :

Namco 50th Anniversary (Wäre jetzt die Bezeichnung in der Tabelle CDDVD! Unter diesem Namen müssen jetzt mehrere Programme eingetragen werden, dies wäre dann wohl der CDInhalt (Programmname). Dort müsste jetzt rein : 1. PacMan 2. Galaga 3. Galaxian u.s.w. !! Wie sage ich das jetzt dem Formular?  ???

database

#9
Hallo,

dazu gibt es unterschiedliche Möglichkeiten.

Zum einen könntest du ausgehend vom Formular, in dem du die CDs erfaßt ein weitees Formular aufrufen und in diesem den Inhalt erfassen.
Ist aber nicht ganz trivial, da du dabei den Primärschlüssel also die CDDVD_ID ins 2. Formular übergeben mußt.
Die 'Schwierigkeit dabei ist die, dass zum Zeitpunkt der Eingabe normalerweise dieser Primärschlüssel noch nicht erzeugt ist - der wird erst dann geschrieben,
wenn du den aktuellen Datensatz verläßt oder durch einen Befehl das Speichern des Datensatzes veranlaßt.
Der PK muss dann ausgelesen werden bevor du das 2. Formular öffnest.

Ein einfacherer Weg ist der, die CD in einem Hauptformular zu erfassen und den Inhlat in einem Unterformular.
MzKlMu hat vor einiger Zeit ein kleines Beispiel im Forum bereitgestellt, dass ich - ich gehe von seinem Einverständnis aus - dir im Anhang zur Verfügung stelle.
Hier geht es um Artikelbestände und Vorgänge rund um einen erfaßten Artikel.
Im Prizip kannst du an Hand dieses Beispiels dein Hautpt- und Unterformular nachbilden.

HTH

[Anhang gelöscht durch Administrator]

WaTrax

Danke! Ich werde mich mal daran versuchen und es dann hier im Forum Berichten! Bis demnächst.