Seite 1 von 1

Strukturfrage

Verfasst: Di 4. Dez 2012, 16:27
von Originalgangsta
Hi!

Beschäftige mich rein aus Interesse an Datenbanken mit Base, bin also reiner Autodidakt. Da man an einer konkreten Nutzung immer am Besten lernt (ich zumindest) versuche ich gerade mir eine Datenbank für Wein zu erstellen... :-)

An folgendem Punkt bin ich mir nicht sicher wie die optimale Lösung aussehen soll, begonnen auf Tabellenebene:
Der Wein wird gekauft. Für den Kauf habe ich eine Tabelle, die wirklich nur die Daten für den Kauf an sich aufnehmen soll, z.B. das Datum und das Geschäft. Dann habe ich eine zweite Tabelle für die diversen einzelnen Positionen des Kaufs mit der Information welcher Artikel zu welchem Preis erworben wurde, verknüpft mit der Kauftabelle über den Primärschlüssel ID_kauf. So weit, so gut. Die Frage stellt sich mir nun wo ich am besten die Menge pro Position hinterlege. Eigentlich möchte ich die Menge in einer separaten dritten Tabelle führen, da zwar in fast allen Fällen die Menge durch Kauf aufgebaut wird, aber durch trinken, verkosten, verschenken oder im schlimmsten Fall zerbrechen sinkt. Die Veränderungen des Bestands will ich also in der dritten Tabelle führen, hauptsächlich aus Gründen der einfacheren Abfrage. An der Stelle die erste Frage:
Würdet ihr das auf Tabellenebene genauso lösen?
Da ich nun so angefangen habe habe ich auch versucht ein Formular für die Eingabe eines Kaufs zu entwerfen. Also ein Hauptformular mit den Feldern für Datum und Geschäft, dann ein Unterformular für die Positionen. Und bei der Menge wird es jetzt nicht mehr ganz so einfach... Ein weiteres Unterformular? Ist unkomfortabel bei der Eingabe. Oder Dateneingabe über eine Abfrage? Habe auch in die Richtung gedacht über ein Makro die Daten in die dritte Tabelle zu schreiben, aber spätestens bei der Verzahnung des Makros mit SQL ist das dann auch nicht mehr einfach. Hier also die zweite Frage: Wenn ihr den Ansatz mit den drei Tabelle mitgeht, wie würdet ihr das Formular für die Eingabe aufsetzen?

Freue mich auf Euer Feedback - und danke natürlich!
Patrick

Re: Strukturfrage

Verfasst: Di 4. Dez 2012, 19:21
von RobertG
Hallo Patrick,
Originalgangsta hat geschrieben: Eigentlich möchte ich die Menge in einer separaten dritten Tabelle führen, da zwar in fast allen Fällen die Menge durch Kauf aufgebaut wird, aber durch trinken, verkosten, verschenken oder im schlimmsten Fall zerbrechen sinkt. Die Veränderungen des Bestands will ich also in der dritten Tabelle führen, hauptsächlich aus Gründen der einfacheren Abfrage.
Beim Kauf hast Du eine bestimmte Menge an "Zugang". In Deiner dritten Tabelle müsstest Du also nur den "Abgang" verzeichnen. Aus "Zugang" - "Abgang" ermittelst Du jederzeit den Bestand. Du kannst so immer nachhalten, wie viel Du wirklich gekauft hast. Wenn Du hingegen nur einen Datensatz mit der Anzahl laufend veränderst, dann ist die Fehleranfälligkeit höher: Du rechnest, Du kannst Dich vertippen. In den abgang würde ich natürlich auch noch ein Datum mit aufnehmen. Dann lässt sich auch unschwer ablesen, zu welcher Jahreszeit der Weinkonsum besonders hoch war ...
Originalgangsta hat geschrieben: Also ein Hauptformular mit den Feldern für Datum und Geschäft, dann ein Unterformular für die Positionen. Und bei der Menge wird es jetzt nicht mehr ganz so einfach... Ein weiteres Unterformular?
Daran merkst Du schon, dass das eigentlich keine separate Tabelle sein kann. Du solltest eigentlich nur beim Einkauf, dort aber für jeden Posten, genau einmal die Anzahl angeben. Deshalb gehört die Anzahl in den Einkauf.
Mach' eine zweite Tabelle zum Verbrauch mit Datum, Anzahl und "Wein_ID" auf. Und die wird dann Grundlage eines neuen Formular "Verbrauch".

Gruß

Robert

Re: Strukturfrage

Verfasst: Mi 5. Dez 2012, 16:37
von Originalgangsta
Hi Robert,

danke für Dein Feedback!
RobertG hat geschrieben:Beim Kauf hast Du eine bestimmte Menge an "Zugang". In Deiner dritten Tabelle müsstest Du also nur den "Abgang" verzeichnen.
Das ist soweit natürlich richtig, ich hatte die Hoffnung in der dritten Tabelle alle Bewegungen zu haben und somit nur über diese eine Tabelle die Bestände abfragen zu können.
RobertG hat geschrieben:Wenn Du hingegen nur einen Datensatz mit der Anzahl laufend veränderst, dann ist die Fehleranfälligkeit höher.
Auch hier stimme ich Dir zu, der Ansatz sollte allerdings sein für jede Bewegung einen Datensatz zu schreiben und bestehende Sätze nicht zu ändern.
RobertG hat geschrieben:In den abgang würde ich natürlich auch noch ein Datum mit aufnehmen. Dann lässt sich auch unschwer ablesen, zu welcher Jahreszeit der Weinkonsum besonders hoch war ...
Super Hinweis, sofort umgesetzt. :-)
RobertG hat geschrieben:Mach' eine zweite Tabelle zum Verbrauch mit Datum, Anzahl und "Wein_ID" auf. Und die wird dann Grundlage eines neuen Formular "Verbrauch".
Der originäre Grund überhaupt Wein als Thema zu nehmen ist, daß betrachet werden soll, ob es z.B. bestimmte Regionen, Winzer oder Rebsorten gibt, die besonders zusagen. Daher gibt es schon eine Tabelle "Probe" in der Feedback zu den verkosteten Weinen nachgehalten wird. Deinem Vorschlag folgend wäre der Ansatz umzustellen: Es gibt die von Dir vorgeschlagene Tabelle "Verbrauch" in der eine Verbrauchsart "Probe" sein kann. Für die Eingabe des Feedbacks müßte dann in ein weiteres Formular verzweigt werden. Der Ansatz ist auch gut.
Bis jetzt kenne ich nur die Möglichkeit Felder über Makros ein- und auszublenden, geht das auch für Sub-Formulare oder Buttons?

Viele Grüße,
Patrick

Re: Strukturfrage

Verfasst: Mi 5. Dez 2012, 20:36
von RobertG
Hallo Patrick,

zum Ausblenden:
Das kannst Du, wenn Du das von irgendwelchen Eingaben abhängig machen willst, tatsächlich nur über Makros realisieren. Ganze Formulare lassen sich nicht ausblenden - nur die Felder, die letztlich auch dem Bildschirm sichtbar sind. Du musst also schon die Felder konkret anwählen. Dazu gehören dann natürlich auch Buttons.

zum Abfragen der Bestände:
Du kannst mit der 3. Tabelle alleine arbeiten. Die Bestandsrechnung musst Du sowieso in einer Abfrage realisieren. Und diese Abfrage musst Du dann so gestalten, dass sie auch die Eingabe im Formular möglich macht.

Gruß

Robert

Re: Strukturfrage

Verfasst: Di 29. Jan 2013, 19:16
von Originalgangsta
Hi Robert,

endlich habe ich Deine Ratschläge in die Tat umsetzen können und die DB so weit fertiggebaut, daß ich anfangen konnte mit der Eingabe. Habe also ein Formular erstellt in dem je nach "Bewegungsart" verschiedene Buttons bzw. Felder eingeblendet wurden und entweder die direkte Eingabe oder das Verzweigen in andere Formular möglich war.
Dann habe ich die Abfrage für die Bestandsliste in SQL geschrieben, da ich eine Abfrage über mehrere Tabellen mit dem Assistenten nicht wie gewünscht hinbekommen habe, und mit der Eingabe begonnen.

Danke noch mal für Deine Hilfe!
VG
Patrick

P.S.: Muß ich den Thread irgendwie auf gelöst setzen?

Re: Strukturfrage

Verfasst: Di 29. Jan 2013, 21:21
von RobertG
Hallo Patrick,

vermutlich kann das "Gelöst" nur dadurch bewerkstelligt werden, dass Du die Überschrift des Einstiegs in diesen Thread änderst.
Manche Threads haben das stehen, andere nicht. Aber übersichtlicher ist das schon.

Gruß

Robert