Zitat von
shmia:
Abfragen, wie z.B. "welche Artikel sind grün ?" sind damit zwar relativ schwierig, aber Änderungen an den Tabellenstrukturen sind gefährlicher.
Finger weg von den Stammdaten! Jo!
Abfragen sind relativ schwierig? Nö!
Delphi-Quellcode:
select Artikel.*
from Artikel a
join AttrributWerte aw join a.artID = aw.artID
where aw.attrID = 123 -- AttributID des Attributes 'Farbe'
and aw.attrValue = 'grün'
Damit sind sogar wunderbare Filter möglich ('Alle grünen Artikel ohne Sahnehäubchen, die eine Linksquantisierung beinhalten oder gelb sind etc.'). So lassen sich beliebig komplexe Filter vom Kunden selbst mit einer einfachen Logik schnell und effizient aufbauen. Nur zwei Indexe und fertig. Dieses Verfahren haben wir seit Jahren für genau diesen Anwendungsfall (Kunde will Daten erweitern) im Einsatz und es ist schnell, kompakt und flexibel.