Hallo,
mein Problem ist, dass ein Produkt z.B. 4 von 5 Optionen mit folgenden Lieferzeiten haben kann "normal" und "Express", das 5 jedoch entweder keine Lieferzeit, oder z.B. warum auch immer Overnight
hört sich erst mal nach einer feststellung an und weniger nach einen problem.
ich möchte verhindern, dass der Kunde ein Produkt zur Auswahl erhält, was sich auf Grund der Optionen nicht bestellen lässt, da z.B. nicht alle die selben Lieferzeiten haben
da muss ich noch mal nachfragen. schließlich ist es möglich, eine option mit overnight und eine option mit normal zu verbinden, indem man einfach die längste lieferzeit nimmt, hier also normal. ich denke aber mal, du wirst die lieferzeit für die option dann mehrfach gespeichert haben, indem du overnight, express und normal für eine option speicherst und deswegen überprüfen, ob die lieferzeiten alle gleich sind.
dafür ist ja die eine Tabelle zwischentabelle t_lieferzeit_has_option1, etc.
ist in meinen augen dann nicht so gelungen, ehrlich gesagt, könnte ich mir gut vorstellen, dass das daten-design eventuell sich verbessern ließe.
wie kann man das sonst lösen?
dass man das Datendesign verbessern kann, möchte ich nicht in abrede stellen, im Moment fällt mir leider keine bessere Lösung ein
aber zurück zu deinem problem. da du mehrere tabellen hast, wirst du für ein produkt und seine entsprechenden option, bzw. lieferzeiten mehrere datensätze geliefert bekommen, wenn du eine abfrage machst. der produktname der datensätze gleicht sich immer, nur in den optionen und lieferzeiten unterscheiden sich die jeweiligen datensätze dann.
da du nur drei unterschiedliche lieferzeiten hast, wäre eine denkbare lösung wäre, indem du in deine abfrage eine bedingung hinzu nimmst, um alle anderen bis auf eine lieferzeit auszuschließen:
WHERE t_lieferzeit = "normal"
das Problem ist, dass man Lieferzeiten hinzufügen kann bzw. löschen kann, es müssen auch nicht unbedingt 3 bleiben, bei der Anzahl gibt es keine Grenze
dann solltest du nur noch datensätze mit lieferzeiten "normal" bekommen. der rest ist einfach, noch zwei weitere abfragen der gleichen art mit "express" und "overnight" für die bedingung und alle drei abfragen verbindest du mit dem UNION Operator. schau mal, ob das hilft.
dann könte ich z.b. auch vorher die ID's von den Lieferzeiten abfragen, und mir daraus dann den SQL Befehl zusammen bauen
ich werde das nachher gleich mal testen :-)
mfg
Twilo
Farbtabelle