Die 3 Gruppenschlüssel (Hauptgruppe, Gruppe, Untergruppe) speicherst du also redundant bei den Produktdaten. Sind die Gruppen in deiner Tabelle desc auch redundant gespeichert? Üblich ist da - wie ich bereits in einem anderen
thread geschrieben habe - eine selbstrekursive Tabelle: GROUPS (ID, POSITION, TITLE, GROUPS_ID, ROOT_ID).
Bei deiner Art die Produktdaten zu selektieren benötigst du einen Powerset Operator, der in
ACCESS leider nicht implementiert ist. Ich würde auf die Master-Detail Beziehung und die redundante Speicherung verzichten und den Powerset in Delphi rekursiv bestimmen. Deine Produktdaten würdest du dann nicht mit WHERE GROUP2 = :G2 selektieren, sonder mit WHERE GROUP_ID IN (:POWERSET). Für kompakte Gliederungen wird das Limit für
SQL Statements sicher nicht gesprengt. Stößt du an diese Grenze, dann bleibt immer noch die Möglichkeit die am Powerset beteiligten Primärschlüssel in einer (evtl. temporären) Tabelle zu speichern.
marabu