Mailinglisten-Archive |
Hi, stelle gerade fest dass meine DB Struktur vielleicht doch nicht so optimal ist.. Es geht um eine Projektverwaltung, ich habe eine Tabelle Auftragsnummern mit den Stammdaten und eine Tabelle ls_status in der festgelegt wird welche Leistungsschlüssel (=Teilleistungen) für den jeweiligen Auftrag freigegeben sind. Tabellenstruktur verkürzt: Auftragsnummern: id BEZEICH ... 599 28 C Ich bin ein Auftrag ls_status: id anr lsts frei fertig 1 599 28 C 10 N Y für die Leistungsschlüssel gibts natürlich auch noch ne Tabelle: lsts: id Bezeichnung 10 Objektüberwachung bedeutet: Das der Datensatz für anr/lsts überhaupt existiert zeigt, dass der Leistungsschlüssel 10 für die Auftragsnummer 599 28 C beauftragt war/ist. Er ist nicht mehr frei (d.h. es können keine Stunden mehr drauf geschrieben werden) und er ist fertig. (fertig = 'Y' bedeutet nicht zwangsläufig frei='N' - ggf. wurde ein Entwurf abgegeben (d.h. Auftrag ist fertig) aber es werden weiterhin Stunden darauf geschrieben, weil der Auftrag z.B. noch im Stadtrat vorgestellt wird etc...) Jetzt hätte ich gerne alle Auftragsnummern (aus der Auftragsnummernliste) bei denen der Leistungsschlüssel 10 nicht beauftragt wurde, d.h. es existieren zwar Einträge in ls_status (somit reicht ein LEFT JOIN und auf NULL testen nicht) aber kein Eintrag mit lsts=10. Übersehe ich was triviales oder kriege ich das nicht raus? Problem ist doch, dass um erst mal mit einer Liste aller Aufträge anzufangen ich auf jeden Fall mit FROM Auftragsnummern beginnen muss. Um alle Lst zu kriegen und zu schauen welche davon nicht in ls_status sind müsste ich mit FROM lsts beginnen und bei ls_status auf NULL testen. Von den Auftragsnummern aus zu den Leistungsschlüsseln komme ich aber nur über ls_status, und wenn da die 10 nicht existiert dann wars das halt... (Und bevor jemand empfiehlt einfach auch für nicht beauftragte Lst einen Eintrag in ls_status zu machen - das halte ich für nicht durchführbar - müsste man ja ggf. beim anlegen der Auftragsnummer machen und gelegentlich kommen irgendwann neue Leistungsschlüssel dazu.) -- Gruß Mike Beck mike.beck_at_ibmiller.de http://www.ibmiller.de
php::bar PHP Wiki - Listenarchive