Moin!
Grundlegende Frage: Sind die Rabatt-Klassen auf einen Artikel festlegbar, oder hängen die mit dem Kunden zusammen? - Z. B. Kunde xyz erhält für alle Artikel global 10% Rabatt, oder Kunde xyz hat die Rabattklasse 2, was bei Artikel 15 zur Folge hat, dass er mit nur 10 EUR verrechnet wird...???
Wie gesagt, es gibt 7 Rabattklassen für jedes Produkt, die Kunden werden dann einer dieser 7 Klassen zugeordnet. Wenn die Rabattklassen nur jeweils einen bestimmten Prisabschlag in % bvedeuteten, hätte ich das Problem nicht, denn diese Prozente kann man einfach bei der Ausgabe berücksichtigen. Pordukt XY hat also 7 Preise, einen für jede Rabattgruppe. Die Preise werden alle einzeln festgelegt.
Willst du die Rabattklasse wirklich einem Kunden zuordnen und dann für _jeden_ einzelnen Artikel die Preise/Rabattklasse setzen? - Wäre es nicht viel einfacher, wenn man einen "globalen" Kundenrabatt in Prozenten formuliert?
Ja, einfacher wäre es, aber es ist nicht so.
Nach welchem Kriterium wird der Kunde in eine bestimmte Rabattklasse eingeordnet?
nach umsatz, aber nicht automatisch, sondern durch einen Mitarbeiter eingestuft, je mehr Umsatz durch den Kunden, desto besser die Rabattklasse.
Die Tabelle Artikel enthält gar keine Preisangaben. Diese stehen in einer anderen Tabelle 'Price':
Tabelle Price
ArticleID (primary)
PriceClassID (primary)
AbsolutePrice
Tabelle Client
ClientID
Name
PriceClassID
Nö, ich habe
Tabelle Article
ArticleID (primary)
Beschreibung
...
PriceClass1
PriceClass2
...
PriceClass7
Tabelle Client
ClientID
Name
PriceClassID
Wenn man nun den Preis für einen Artikel auslesen will:
SELECT P.AbsolutePrice FROM Price AS P, Client AS C WHERE P.ArticleID='xxx' AND C.ClientID='xxx' AND P.PriceClassID=C.PriceClassID
waren das nicht die tötlichst unperformantesten Joins? ;-)
oder so ähnlich...
SELECT PriceClassID FROM Client WHERE ClientID='xyx'
$preisklasse="PriceClass".$sql_result;
SELECT $preisklasse FROM Article WHERE ArticleID='xxx'
So in etwa, aber irgendwie sehr unschön, oder?
Viele Grüße
Andeas