collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 49
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13974
  • stats Beiträge insgesamt: 66586
  • stats Themen insgesamt: 8974
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: "Baumstruktur" in Tabelle (Erfassung) mit gleichtzeitiger Berechnung der Unterta  (Gelesen 2976 mal)

Offline to1984

  • Newbie
  • Beiträge: 6
Hallo liebe Mitglieder,

ich habe drei Tabellen:
  • Lebensmittel
  • Konsum (entspricht der jeweiligen, verzehrten Menge eines Lebensmittels)
  • Gericht (bspw. "Mittagessen" mit Uhrzeit und eben verschiedenen Konsummengen (Bestandteile sozusagen)

Jetzt hätte ich entweder gern direkt in der Tabelle mit Baumstruktur (s. erstes Bild) oder Abfrage (ich glaube da gehört es bei ordentlicher Programmierung eher hin), wobei ich bei der Abfrage zum einen die Baumstruktur nicht hinbekomme und zum anderen keine Daten mehr ändern kann, sobald eine zweite Tabelle mit drin (z.B. die Bezeichung des Gerichts ändern, wenn zu einer anderen Tabellle eine Beziehung besteht, in welcher summiert wird).


 

 

 

 
Wie müsste ich das am besten aufbauen?
Vielen Dank für wertvolle Hinweise.
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7291
Hallo,
mir ist nicht ganz klar, was Du summieren willst, die Menge oder die Kcal an Hand der Menge je Gericht.

Da sich der Name des Gerichts (Mittagessen, Abendessen usw.) wiederholt, wäre es sinnvoll dafür auch eine Tabelle anzulegen und in tGericht nur einen Fremdschlüssel zu speichern.
Deine Feldnamen (gericht, Lebensmittel) lassen auf die Verwendung von Nachschlagefeldern schließen. Diese sind unbedingt zu vermeiden. Wird auch in Tabellen nicht benötigt.

Weiterhin solltest Du grundsätzlich referentielle Integrität in den Beziehungen einstellen. Wenn das nicht geht liegen bereits Fehler in der Struktur und/oder in den Daten vor.
Gruß
Klaus
 

Offline to1984

  • Newbie
  • Beiträge: 6
Hi Klaus,

danke für Deine Rückmeldung.

Den Hinweis mit der Tabelle für die Namen der Gerichte nehme ich zur Kenntnis. Allerdings kann es auch "Eis in der Fußgängerzone" sein.

Auf der Ebene des Gerichts soll die Summe aller Bestandteile sein, sprich "Menge des Konsumierten x kcal des Lebensmittels".
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7291
Hallo,
im Anhang ein einfaches Beispiel mit Deiner Beschreibung.
Bitte Beziehungen ansehen.
Im Formular "frmErfassung" kannst Du alle Daten je Tag und Gericht erfassen.
Auch das "Eis in der Fußgängerzone".  ;D
Du findest auch eine Abfrage die nach Tagen gruppiert.

Es ist wichtig, dass Du auf die Einheiten achtest. Ich habe jetzt Kcal je Kg gesetzt und die Menge in Gramm.
Die Zahlen sind natürlich völlig willkürlich, da ich von den echten Werten keine Ahnung habe.

Diese Aufklappfunktion in den Tabellen halte ich für ziemlich überflüssig, braucht man nicht, da man Daten nur über Formulare eingibt und ansieht. Und da geht das viel komfortabler.

« Letzte Änderung: Juni 18, 2016, 19:57:43 von MzKlMu »
Gruß
Klaus
 

Offline to1984

  • Newbie
  • Beiträge: 6
hallo klaus,

vielen Dank, das sehe ich mir gleich an. Klar sind die Werte beispielhaft und die Einheit wichtig. Ich bereits eine sehr komplexe Food-Datenbank, doch das sind eher flache Tabellen und gewissen Kopfdaten (z.B. "Mittagessen" sowie der Zeitpunkt) auf der falschen Ebene, so dass ich die immer kopieren muss für die Kartoffeln, Erbsen etc. Und mit der Zeit fallen mir an meinem bisherigem Datenmodell doch einige Fehler auf; außerdem wächst mein Anspruch an die usebility ... und so baute ich mir diesen simplen Test.

Ich werde berichten ;-)
 

Offline to1984

  • Newbie
  • Beiträge: 6
wow, schickes formular. Das bedeutet wohl, dass es mit dem Tabellen-Layout und diesen Plus-Zeichen zum Auf- und Zuklappen nicht geht, oder? Vermutlich braucht es dafür eine Abfrage und da geht in der tabelarischen Darstellung das Plus-Zeichen zur Abhängigkeit wieder nicht, richtig?

Ich hab nochmal ein Mockup angehangen:

In jedem Fall: Vielen lieben Dank!
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7291
Hallo,
Zitat
Das bedeutet wohl, dass es mit dem Tabellen-Layout und diesen Plus-Zeichen zum Auf- und Zuklappen nicht geht, oder?
wie bereits gesagt, ist das eine völlig überflüssige und ungeeignete Konstruktion. Das ist auch viel zu unkomfortabel.
Mit Hafo und Ufo wird z.B. der Fremdschlüssel automatisch an das Ufo durchgereicht. Weiterhin sind Ereignisprozeduren zur komfortablen Steuerung der DB nur in Formularen möglich. So kann z.B. der Standardwert für das Datum aus dem vorherigen Datensatz übernommen werden. Ich würde daher auch Datum und Zeit in getrennten Feldern speichern, dann braucht man nur noch die Zeit einzutragen. Das geht aber alles nur mit Formularen.
Bei meinem Formular ist übrigens nichts programmiert, sind alles Standardfunktionalitäten von Access.

PS:
Wie hast Du denn die Darstellung auf dem Bild oben hinbekommen ?
Das ist übrigens eine Darstellung die auch ungeeignet ist.
Gruß
Klaus
 

Offline to1984

  • Newbie
  • Beiträge: 6
ge-photoshop-t  :P

Mit Datum und Uhrzeit triffst Du einen wunden Punkt; das ist in der Tat heute sehr nervig (selbst mit dem Standardwerte =JETZT()), denn ich muss oftmals ins Feld reinspringen, nur die Zeit markieren und ändern. Auf die Idee, die Felder getrennt zu verwenden (egal ob in einer Tabelle oder im Formular) und später wieder zusammenzubasteln, bin ich noch gar nicht gekommen :-).

Ich glaube ich muss das nochmal sacken lassen und schaue mir Deine DB genauer an.

Aber zurück zu meinem Mockup: wäre das nicht einfach wieder ein weiteres Hauptformular, in welches ich Dein jetziges HaFo integriere?
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7291
Hallo,
Zitat
egal ob in einer Tabelle oder im Formular
das getrennte Feld muss auch in der Tabelle sein, das ist nicht egal.
Zitat
wäre das nicht einfach wieder ein weiteres Hauptformular, in welches ich Dein jetziges HaFo integriere?
wozu soll das gut sein ? Du brauchst doch hier kein weiteres Hafo.

PS:
Was ist ein Mockup ?
Gruß
Klaus