Hallo zusammen.
Hab Fragen in einer DB die beantwortet werden sollen. Relevant sind
THEMENSCHWERPUNKTE_ID
THEMEN_ID
TAETIGKEITEN_ID
ISCHLUESSEL (die Antwort (0-5), wobei -1 bedeutet unbewertet)
TIMESTAMP_ANGESTOSSEN (unixtimestamp, wann die Abfrage angestossen wurde)
IPERSONAL (Personalnummer)
es gibt noch extra Tabellen in denen versch. Themenschwerpunkte mit Themen verknüpft werden, sowie Themen mit Taetigkeiten, aber ich glaube, dass es auch so funktionieren sollte..
Folgende Abfrage würde mir erstmal alle offenen Fragen für einen Mitarbeiter ausgeben:
(zwar oracle, aber eine MySQL Lösung würde mir auch reichen um das Problem zu verstehen und selbstständig in Oracle umzuwandeln):
PHP-Code:
SELECT
THEMENSCHWERPUNKTE_ID,
TAETIGKEITEN_ID,
THEMEN_ID
FROM
DOM_MATRIX
WHERE
DOM_MATRIX.IPERSONAL = '$TMP_IPERSONAL' AND
DOM_MATRIX.ISCHLUESSEL = '-1'
Code:
THEMENSCHWERPUNKTE_ID TAETIGKEITEN_ID THEMEN_ID
---------------------- ---------------------- ----------------------
42 1 24
42 1 57
44 1 58
44 1 58
37 38 138
37 39 138
37 9 186
37 15 186
37 16 186
37 17 186
37 18 186
37 20 186
37 21 186
37 22 186
37 23 186
37 9 187
37 9 188
37 15 188
37 16 188
37 18 188
37 20 188
37 22 188
37 23 188
37 24 188
37 9 189
37 16 189
37 18 189
37 22 189
37 23 189
37 25 190
37 26 190
37 27 190
37 28 190
37 1 191
37 1 192
37 1 193
37 15 194
37 17 194
37 21 194
37 29 194
7 9 21
7 101 21
7 164 41
7 168 41
7 171 41
7 1 78
7 1 79
7 1 85
7 1 94
7 1 244
41 1 200
41 1 201
41 1 236
41 1 237
41 1 239
9 9 21
9 101 21
9 1 102
9 1 240
9 1 241
9 1 242
9 1 244
62 rows selected
Nun hab ich mir überlegt, dass ich immer nur alle Tätigenkeiten zu einem Thema abfragen will, jedoch stehe ich hier schon am problem. theoretisch könnte man es ja so machen:
PHP-Code:
SELECT
THEMENSCHWERPUNKTE_ID,
TAETIGKEITEN_ID,
THEMEN_ID
FROM
DOM_MATRIX
WHERE
DOM_MATRIX.THEMEN_ID = DOM_MATRIX.THEMEN_ID = (SELECT min(THEMEN_ID)FROM DOM_MATRIX WHERE DOM_MATRIX.ISCHLUESSEL = '-1' AND DOM_MATRIX.IPERSONAL = '$TMP_IPERSONAL' )
DOM_MATRIX.IPERSONAL = '$TMP_IPERSONAL' AND
DOM_MATRIX.ISCHLUESSEL = '-1'
... aber das kann es ja nicht sein, da muss es doch eine bessere Lösung geben?
Vorallem kommen noch ein paar Herausforderungen dazu:
- Wenn das gleiche Thema an mehreren Timestamps abgefragt wurde, dann nur das mit dem neuesten anzeigen
- Wenn das Thema mit zugehörigen Taetigkeiten in mehreren Themenschwerpunkten hängt, dann nur für einen Themenschwerpunkt anzeigen.
- Die ganzen IDs sollen auch noch ZUSÄTZLICH zur ID als Bezeichnung ausgegeben werden, dafür gibt es ein Feld VZBEZEICHNUNG in den Tabellen DOM_TAETIGKEITEN, DOM_THEMEN und DOM_THEMENSCHWERPUNKTE, zuordnung jeweils mit dem Feld ID
Ehrlich gesagt fehlt mir hier gerade so ein bisschen der Ansatz. Früher hätte ich es so gemacht, das ich das Problem in viele Teilprobleme aufteile und dann jeweils eine Abfrage per PHP rausschicke, allerdings muss das doch auch auf einmal gehen?
Irgendwie wünsche ich mir jetzt mal eine Schulung für das ganze bekommen zu haben, aber in nem Jahr werde ich die Vorlesung dazu mal belegen, vllt bringt mich die auch weiter.
Also Jungs, jemand fit genug so eine herausforderung zu lösen, bzw zumindest mich mal den richtigen Weg zu bringen?
Domi