Neuigkeiten:

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

Mobiles Hauptmenü

Tabellenstruktur der Datenbank

Begonnen von rbaltermi, Dezember 31, 2012, 16:59:52

⏪ vorheriges - nächstes ⏩

rbaltermi

Hallo Zusammen

Ich bin am erstellen einer Datenbank zur Verwaltung von Lieferscheinen und Monatsrechnungen. Der grösste teil der Tabellenstruktur ist für mich eine klare Sache.
Mein Knopf im Konzept entsteht jedoch bei den Artikeln.

Zur allgemeinen Erklärung, eine Firma stellt Artikel her und liefert diese an weitere Firmen und Privatkunden. das ist noch einfach. Doch nun den Knopf den ich nicht lösen kann. je nach Grösse der Bezüge wird mit den firmen eine Kondition ausgehandelt, die jedoch nicht auf % ausgelegt ist, sondern auf den Verkausfpreis. Das bedeutet, dass jeder Artikel mehrere Preise haben kann.  Nun wenn ich in der Tabellenstruktur an der Artikeltabelle einfach einen Spalte für den Preis1, Preis2, Preis3, Preis4 einfüge, habe ich die begrenzt auf 4 Preise kommt morden ein weiterer Kunde dazu der mit neuen Konditionen beliefert wird habe ich ( der Benutzer) ein Problem. Weiter ist es so, das ich nicht für alle Artikel alle Preise Eingebe. es kann deshalb gut vorkommen, dass der Artikel xy einen Preis im Preis1 hat (zwingend ) und im Preis4 hat weil eben nur ein Grosskunde diesen Preis ausgehandelt hat. auf der anderen Seite kann dieser Grosskunde auch Artikel bestellen die nicht mit seinem Preis berechnet worden sind. z.B. Artikel OK der nur einen Preis 1 hat. wenn ich nun in der Kundenkartei hinterlege dass der Kunde der Preis 4 hat, kann ich den Filter der Preise der Artikel mit einer Wennformel in der Abfrage gut steuern. Doch wenn ein weitere Kunde mit neuen Konditionen dazukommt habe ich keinen freien Platz mehr für einen neuen preis in der Tabelle. Nun habe ich mir gedacht ich ich zerlege die Tbl Artikel in 3 Tabellen Tbl 1: Artikel mit ArtikelID; Name; Bschreibung   -   Tbl2: Preiskategorie mit PreisID; Preiskategoriebezeichnung; Preis und Tbl 3 Verbindungstabelle mit ArtikelPreisID; ArtikelID; PreisID; Preisin CHF.  Diese Artikel stelle ich so in die Beziehung, dass ich für jeden Artikel mittels der Verbindungstabelle mehrere Preise erfassen kann. Doch dann funktioniert meine wenn Abfrage nicht mehr, da der Artikel jeweils mit dem Preis3 und Preis1 geliefert wird.

Gibt es da eine Möglichkeit damit ich die Tabellen Dynamisch halten kann und trotzdem pro Artikel nur einen preis Filtern kann. Wenn ((PreisID =FRM_Kunden_PreisID); FRM_Kunden_PreisID;1)  Die 1 steht für die PreisID 1mit dem Standartpreis

War das Einigermassen verständlich oder soll ich einen neuen Versuch mit meiner Frage abgeben.

Danke

rbaltermi

MzKlMu

Hallo,
die Preisliste muss eine extrag Tabelle sein, mit einem Bezug zum Artikel als Fremdschlüssel.
Hat ein Artikel 4 Preise entstehen in dieser Tabelle 4 Datensätze mit einem Bezug auf die Art des preises.

Die Preisliste ist also völlig flexibel, Du kannst zu einem Artikel 2 Preise, 20 Preise oder auch nur einen erfassen, an der Tabellenstruktur ändert sich nichts, nur die Anzahl der DS ändert sich.

Wie kommen denn die unterschiedlichen Preise zu Stande, sind das Staffelpreise der Mengen?
Gruß Klaus

Beaker s.a.

Hallo,
@Klaus
Diese Tabelle hat er wohl schon:
ZitatVerbindungstabelle mit ArtikelPreisID; ArtikelID; PreisID; Preisin CHF.

@rbaltermi
Wenn die PreisID beim Kunden hinterlegt ist,
hat er doch nur einen Preis. Wenn ein Kunde mehrere
Preise für einen Artikel haben kann, könnte man
überlegen, die o.a. Verbindungstabelle um eine
KundenID zu ergänzen, oder eine weitere Tabelle
zu erstellen, die Preise und Kunden verbindet.

gruss ekkehard

... und übrigens nochwas
Frohes neues Jahr
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)

rbaltermi

Hallo Klaus und Ekkehard

zuerst mal wünsche ich Euch ein gesundes neues Jahr.

Danke für die schnellen Antworten.

Mit meiner Verknüpfungstabelle habe ich, so glaube ich bereits einem "Fremdschlüssel" integriert.

Was ich möchte ist eine dynamische Lösung für mein Problem, das ich nochmals versuche zu erklären.

Ich habe eine Bäckerei die je nach Saison 400 Artikel produziert und verkauft. Auf der anderen Seite habe ich Kunden mit verschiedenen Konditionen. 

Der Preis 1 stellt der "normale" Strassenverkaufspreis dar.

Ein sehr grosser Kunde bezieht meistens nur 1 Produkt, das täglich und in sehr grossen Mengen. Jedoch bezieht er zwischendurch auch weitere Produkte, bei denen wir keinen speziellen Preis vereinbart haben.

Nun müsst ich ja allen anderen 399 Produkte die keinen preis in der Kategorie "Preis Grosskunde spezial 1 Produkt" haben, mit dem Preis1 in dieser ergänzen.

Irgendwann habe ich gelernt, in einer DB keine Wiederholungen zu machen, das bläst die gesamte DB nur auf und verhilft mir zu mehr Arbeit. Meine Überlegung ist deshalb: wenn der Preis eines Artikels nicht in der Preiskategorie des Kunden hinterlegt ist, dann soll auf den Preis der Preiskategorie "Preis1" zurückgegriffen werden.

So nun hoffe ich ich habe mich ein wenig besser Ausdrücken können.

Jedenfalls bin ich sehr froh, um jeden Rat der ihr mir geben könnt.



Vielen Dank

Roland Baltermi

ACCESS-O-MANIA FAN

Beaker s.a.

Hallo Roland,
ZitatNun müsst ich ja allen anderen 399 Produkte die keinen preis in der Kategorie "Preis Grosskunde spezial 1 Produkt" haben, mit dem Preis1 in dieser ergänzen.
Um das zu vemeiden, würde ich ein Feld KundenID
mit in die Verbindungstabelle (die ja so zu sagen die
Preisliste ist, wenn ich es richtig verstanden habe)
aufnehmen, und bei einem speziellen Preis wird es
gefüllt. Dann hast Du die Standard-Preise für alle
Kunden (Feld bleibt leer) und einen speziellen Preis
für den Kunden. Bei der Ermittelung des relevanten
Preises für einen Kunden fragst Du dann ab, ob es
einen speziellen Preis gibt (KundenID Is Not NULL).
Falls nicht gilt der Straßenpreis.
Klaus möge mich berichtigen, falls dieser Ansatz
nicht ganz glücklich ist. Ich bin noch etwas träge
im Kopf von den Feiertagen  ;)
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)