Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Beziehungsaufbau korrekt

Begonnen von zer0core, September 16, 2016, 10:23:03

⏪ vorheriges - nächstes ⏩

zer0core

Hallo leute,

bevor ich wieder mehrfach mit einem Projekt anfange wollte ich euch lieber gleich fragen :)

Ich möchte eine DB erstellen, in der die Ausgabe von Tonern dokumentiert wird.
Natürlich wird dann der Druckername hinterlegt mit all seinen Infos und der Lagerbestand dokumentiert.
Das ganze geht über mehrere Standorte und verschiedene Subunternehmen.
Im Anhang seht ihr einen Screenshot von den aktuellen Beziehungen.

Freue mich wenn ihr Verbesserungsvorschläge habt oder aber auch wenn ich es mal richtig gemacht habe *g*

LG

MzKlMu

#1
Hallo,
die Tabelle Bestand halte ich für ersatzlos überflüssig. Stattdessen solltest in der Tabelle  auch die Zugänge eintragen (Tabelle dann umbenennen "tbl_Toner_AusEingang").
Die Abgänge werden dann negativ gespeichert, Zugänge positiv. Der Bestand ist dann einfach die Summe gruppiert über den Tonertyp. Ein derart ermittelter Bestand ist automatisch immer aktuell.

Was ist die AOK Tabelle, bzw. was steht da drin ?
Gruß Klaus

zer0core

aber ich benötige doch eine Startanzahl der verfügbaren Toner?
Desweiteren sind in der Tabelle Bestand die verschiedenen möglichen Toner aufgelistet.
In der Tabelle AOK werden die verschiedenen (Sub)Unternehmen gespeichert.

Beaker s.a.

Zitataber ich benötige doch eine Startanzahl der verfügbaren Toner?
Das ist dann einfach der erste Zugang.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

zer0core

Wo soll ich dann die ganzen möglichen Toner speichern?
Und was ist wenn mehrere Drucker ein und den selben Toner verwenden können?

Beaker s.a.

Hallo,
ZitatWo soll ich dann die ganzen möglichen Toner speichern?
Tja, dafür wirst du wohl eine eigene Tabelle anlegen müssen.
Deren Primärschlüssel kommt dann als Fremdschlüssel zu den Druckern.
Falls es baugleiche Toner gibt, es also mehr als einen Toner für einen Drucker
gibt, bräuchtest du noch eine Zwischentabellen mit zwei Fremdschlüsseln
(Drucker und Toner).
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MzKlMu

#6
Hallo,
mal noch weitere Anmerkungen (hatte heute morgen wenig Zeit).
ZitatWo soll ich dann die ganzen möglichen Toner speichern?
In einer Tonertabelle. Dazu kannst Du die jetzige Tabelle mit dem Bestand verwenden (Name ändern in tbl_Toner) und die beiden Bestandsfelder löschen.
Bei der Gelegenheit, was ist denn Bestand_HV und was Bestand_BD ?
Falls ein Mindestbestand zu überwachen wäre, käme ein solches Feld in diese Tabelle. Um es noch mal deutlich zu sagen, die eigentlichen Bestände (also was da ist) wird nicht in einer Tabelle gespeichert. Der Bestand ergibt sich durch Summierung von Zugang und Abgang gruppiert über den Toner. Der Anfangsbestand ist wie bereits geschrieben der 1. Zugang.

Wenn mehrere Drucker die gleiche Patrone haben ist eine n:m Beziehung erforderlich. Aber die gibt es bereits, über die Tabelle "tbl_Toner_Ausgabe". Über diese Tabelle gibt es eine Beziehung zur (neuen) Tabelle "tbl_Toner" welche wiederum eine Beziehung zum Modell hat. Das Modell gibt es aber auch in der Druckertabelle, sodass sich die Auswahl des Toners per Kombi auf die zum Drucker passenden Toner filtern lässt.

Was machst Du eigentlich, wenn der Drucker mal die Abteilung wechselt ?
Die Info wo der Drucker vorher war geht ja dann verloren. Wenn das nicht erwünscht ist, fehlt noch eine Tabelle welche Abteilung welchen Drucker von wann bis wann hatte.

Weiter Anmerkungen:
Nenn die ID Felder nicht einfach ID, sondern nimm den Tabellennamen dazu (Standort_ID). An den Fremdschlüssel hängst Du dann ein _F (Standort_ID_F).
Es ist vorteilhaft, wenn es in einer DB keine gleichen Feldnamen gibt. Außerdem sollten PS und FS immer zweifelsfrei zu unterscheiden sein.
Keine Nachschlagefelder in den Tabellen verwenden.
Und keine Leer und Sonderzeichen in Feld und Objektnamen.

Bitte mal alle Fragen und Hinweise beantworten.

Im Anhang findest Du noch ein einfaches Beispiel für eine Bestandsermittlung.
Das Beispiel soll nur das Prinzip darstellen. Deine Anwendung wird etwas aufwendiger.
Gruß Klaus