Hallo !<p>
Ich will als Hobbyprogrammierer mit Erfahrung in Delphi und Interbase eine Warenverwaltung<br>
entwickeln, mache mir aber immer wieder große Sorgen um die Datenstruktur.<p>
Da die Ware auf Kommisionsbasis verkauft wird, ist es wichtig, daß die Verkäufe auf die richtigen Partien<br>
der Lieferanten gebucht wird. Damit die Kosten und die Provision vom Verkauferlös abgezogen werden kann.<br>
Ich wollte daher u.a. folgende Tabellen mit den wichtigsten Feldern einführen:<p>
<code>
PARTIEN:<br>
NR : AutoIncrement<br>
LIEFERANT : Integer<br>
STATUS : (offen,abgerechnet,bezahlt)<br>
DATUM,etc...
<br>
EINKEAUFE:<br>
NR : AutoInc<br>
PARTIENUMMER: Integer<br>
ARTIKEL : Integer<br>
KOLLI : Integer<br>
<br>
</code>
Es gibt einen Generator RECHNUNGSNUMMER<br>
<code>
VERKAEUFE:<br>
NR : Integer<br>
RECHNUNG : Integer<br>
KUNDE : Integer<br>
ARTIKEL : Integer<br>
PARTIENUMMER: Integer<br>
KOLLI : Integer<br>
PREIS : Float<br>
BETRAG : Float<br>
<br>
</code>
Die Tabelle VERKAEUFE enthält die einzelnen Verkäufe (bis zu 1000 täglich).<p>
Nun meine Fragen:<br>
1. ich kann VIEWS oder STORED PROCEDURES so definieren, daß ich mit<br>
den Tabellen VERKAEUFE und EINKAEUFE alle KOLLI der einzelnen Artikel<br>
summiere und gegeneinander saldiere,<br>
so daß ich den Bestand erhalte.<br>
Alternativ kann ich eine weitere Tabelle einführen, die für den Artikel den Bestand verwaltet.<br>
Analog dazu das Problem mit den Verkauferlösen. Die kann man auch aus VERKAEUFE lesen,<br>
indem man nach PARTIENUMMER und ARTIKEL selektiert und die Beträge addiert.<br>
Die offenen Posten der Kunden kann auch mit Views so verwaltet werden, indem noch eine Tabelle<br>
die eingegangenen Zahlungen des Kunden als Journal erfasst und dann mit den Verkäufen verrechnet werden.<p>
Im Prinzip wäre das ja eine weitere Normalisierung der Datenbank. Jede dieser Vorgänge sollte (heutzutage selbstverständlich)<br>
allerdings nur (Bruchteile von) Sekunden dauern.<p>
Wer kann mir einen Tip geben ?<p>
Gruß Marcus
Ich will als Hobbyprogrammierer mit Erfahrung in Delphi und Interbase eine Warenverwaltung<br>
entwickeln, mache mir aber immer wieder große Sorgen um die Datenstruktur.<p>
Da die Ware auf Kommisionsbasis verkauft wird, ist es wichtig, daß die Verkäufe auf die richtigen Partien<br>
der Lieferanten gebucht wird. Damit die Kosten und die Provision vom Verkauferlös abgezogen werden kann.<br>
Ich wollte daher u.a. folgende Tabellen mit den wichtigsten Feldern einführen:<p>
<code>
PARTIEN:<br>
NR : AutoIncrement<br>
LIEFERANT : Integer<br>
STATUS : (offen,abgerechnet,bezahlt)<br>
DATUM,etc...
<br>
EINKEAUFE:<br>
NR : AutoInc<br>
PARTIENUMMER: Integer<br>
ARTIKEL : Integer<br>
KOLLI : Integer<br>
<br>
</code>
Es gibt einen Generator RECHNUNGSNUMMER<br>
<code>
VERKAEUFE:<br>
NR : Integer<br>
RECHNUNG : Integer<br>
KUNDE : Integer<br>
ARTIKEL : Integer<br>
PARTIENUMMER: Integer<br>
KOLLI : Integer<br>
PREIS : Float<br>
BETRAG : Float<br>
<br>
</code>
Die Tabelle VERKAEUFE enthält die einzelnen Verkäufe (bis zu 1000 täglich).<p>
Nun meine Fragen:<br>
1. ich kann VIEWS oder STORED PROCEDURES so definieren, daß ich mit<br>
den Tabellen VERKAEUFE und EINKAEUFE alle KOLLI der einzelnen Artikel<br>
summiere und gegeneinander saldiere,<br>
so daß ich den Bestand erhalte.<br>
Alternativ kann ich eine weitere Tabelle einführen, die für den Artikel den Bestand verwaltet.<br>
Analog dazu das Problem mit den Verkauferlösen. Die kann man auch aus VERKAEUFE lesen,<br>
indem man nach PARTIENUMMER und ARTIKEL selektiert und die Beträge addiert.<br>
Die offenen Posten der Kunden kann auch mit Views so verwaltet werden, indem noch eine Tabelle<br>
die eingegangenen Zahlungen des Kunden als Journal erfasst und dann mit den Verkäufen verrechnet werden.<p>
Im Prinzip wäre das ja eine weitere Normalisierung der Datenbank. Jede dieser Vorgänge sollte (heutzutage selbstverständlich)<br>
allerdings nur (Bruchteile von) Sekunden dauern.<p>
Wer kann mir einen Tip geben ?<p>
Gruß Marcus