Twilo: Abfrage, ob ein Produkt gültig ist²

Beitrag lesen

Hallo,

ich habe z.B. ein produkt "test1" und "test2", dann eine eigenschaft auflage mit "1000 stück" und "2000 stück"

ich muss doch irgendwie speichern können, dass die eigenschaft eine auflage, gewicht, etc. ist, wo hast du das eingeplant?

tabelle produkte:

id name ....

1  test1
2  test2

tabelle eigenschaften:

id eigenschaft einheit

1  auflage     Stückzahl
2  gewicht     Kilogramm

tabelle produkte_eigenschaften:

produkt_id eigenschaft_id wert minlieferzeit
1          1              1000 express
1          1              2000 24 stunden
1          2               100 express
2          1              5000 3 tage

der nachteil dieser art ist nun auch deutlichter zu erkennen, nämlich das man keine grossen unterscheidungen bezüglich der eigenschaften machen kann. alle werte, egal ob nun zahlen oder ein string werden in der gleichen spalte abgespeichert. der vorteil ist, man kann ohne in das design einzugreifen neue eigenschaften hinzufügen.

du musst abwägen, ob deine daten recht statisch sind, also doch lieber pro eigenschaft, die mehrfach vorkommen kann eine extra tabelle oder aber mehr dynamik und dann diesen ansatz.

das ganze soll sehr flexibel sein, daher ist die Methode besser

ich habe mal die Formel umgebastelt

SELECT ROUND((  
(wert3._wert2 / 1000 * wert3._wert1 / 1000* wert4._wert1 * wert1._wert1/1000 * wert1._wert2) +  
((wert2._wert1 + wert2._wert2) * produkt._plattenkosten) +  
((((wert2._wert1 + wert2._wert2) * produkt._ruestzeitproplatte/60) + ((wert4._wert1 / CEIL(produkt._bogengroesse / (wert3._wert2 / 1000 * wert3._wert1 / 1000 * 1.1))) / produkt._maschinengeschwindigkeit) + produkt._einrichtzeit/60) * produkt._maschinenstundensatz) +  
(produkt._bogengroesse * wert1._wert1/1000 * wert1._wert2 * produkt._einrichtboegen) +  
ceil(wert3._wert2 / 1000 * wert3._wert1 / 1000 * wert4._wert1 * wert1._wert1/1000) * wert5._wert1) *  
gewinnfaktor._faktor*lieferzeit._faktor, 2) AS preis  
FROM t_lieferzeit lieferzeit  
INNER JOIN t_produkt produkt ON produkt._lieferzeit_id = lieferzeit._lieferzeit_id  
INNER JOIN t_gewinnfaktor gewinnfaktor ON gewinnfaktor._gewinnfaktor_id = produkt._gewinnfaktor_id  
  
INNER JOIN t_produkt_has_wert produkt_wert1 ON produkt_wert1._produkt_id = produkt._produkt_id  
INNER JOIN t_wert wert1 ON wert1._wert_id = produkt_wert1._wert_id  
INNER JOIN t_eigenschaft eigenschaft1 ON eigenschaft1._eigenschaft_id = wert1._eigenschaft_id  
  
INNER JOIN t_produkt_has_wert produkt_wert2 ON produkt_wert2._produkt_id = produkt._produkt_id  
INNER JOIN t_wert wert2 ON wert2._wert_id = produkt_wert2._wert_id  
INNER JOIN t_eigenschaft eigenschaft2 ON eigenschaft2._eigenschaft_id = wert2._eigenschaft_id  
  
INNER JOIN t_produkt_has_wert produkt_wert3 ON produkt_wert3._produkt_id = produkt._produkt_id  
INNER JOIN t_wert wert3 ON wert3._wert_id = produkt_wert3._wert_id  
INNER JOIN t_eigenschaft eigenschaft3 ON eigenschaft3._eigenschaft_id = wert3._eigenschaft_id  
  
INNER JOIN t_produkt_has_wert produkt_wert4 ON produkt_wert4._produkt_id = produkt._produkt_id  
INNER JOIN t_wert wert4 ON wert4._wert_id = produkt_wert4._wert_id  
INNER JOIN t_eigenschaft eigenschaft4 ON eigenschaft4._eigenschaft_id = wert4._eigenschaft_id  
  
INNER JOIN t_produkt_has_wert produkt_wert5 ON produkt_wert5._produkt_id = produkt._produkt_id  
INNER JOIN t_wert wert5 ON wert5._wert_id = produkt_wert5._wert_id  
INNER JOIN t_eigenschaft eigenschaft5 ON eigenschaft5._eigenschaft_id = wert5._eigenschaft_id  
  
WHERE wert1._eigenschaft_id=1 AND wert2._eigenschaft_id=2 AND wert3._eigenschaft_id=3 AND wert4._eigenschaft_id=4 AND wert5._eigenschaft_id=5 AND produkt_wert1._produkt_id = 1 AND wert1._wert_id = 1 AND wert2._wert_id = 3 AND wert3._wert_id = 6 AND wert4._wert_id = 7 AND wert5._wert_id = 9

im moment bezieh ich mich auf die lieferzeit vom produkt, was nicht ganz richtig ist
wie kann ich über mehrere Tsbellen den MIN() wert bestmmen?

also von produkt._lieferzeit_id, eigenschaft1._lieferzeit_id, eigenschaft2._lieferzeit_id, eigenschaft3._lieferzeit_id, eigenschaft4._lieferzeit_id, eigenschaft5._lieferzeit_id

laut phpMyAdmin braucht diese abfrage 0.0011 sekunden, meine andere Abfrage hatte 0.0033 sekunden gebraucht

SQL Create Script mit Daten

mfg
Twilo