Ich hab ein Problem, das ich leider nur sehr schwer beschreiben kann:
Zwei Tabellen sind 1:n verbunden. Dazu gibt es eine weitere
Referenztabelle und eine Kreuztabelle.
(Weiterhin - nicht unmittelbar Problemrelevant - gibt es eine
Benutzertabelle und eine Benutzer-Gruppen-Kreuztabelle mit ID)
Die Referenztabelle sieht so aus:
Gruppe_ID
Gruppe_Typ
Die beiden verbunden Tabellen sehen so aus:
Dokumenttyp_ID
Dokumenttyp_Beschreibung
FID_Gruppentyp ( NULL aber erlaubt ) -> ein Dokumententyp kann
einer Gruppe zugeordnet sein.
...
Dokument_ID
Dokument_Beschreibung
FID_Dokumenttyp ( NULL nicht erlaubt )
...
Nun In einer weiteren Tabelle sind verschiedene Benutzer aufgelistet.
Jeder Benutzer ist nun einer oder mehreren Gruppen zugeordnet (weitere
Kreuztabelle). Die Zuordnung selbst erh�lt wiederum eine ID.
Nach dem anlegen eines Benutzers soll jeder erstmal einer Gruppe
zugeordnet werden. Diese zuordnung erh�lt eine ID.
Nun soll dem Benutzer ( eigentlich der ID, der eine
Benutzer-Gruppen-Zuordnung entspricht ) eine Liste jener Dokumente
angeboten werden, bei denen der FID_Gruppentyp identisch ist, mit der
Gruppe, der er �ber die erste Kreuztabelle zugeordnet ist.
Und jetzt wird�s etwas kompliziert:
Es gibt Dokumententypen, die keinem Gruppentyp (NULL) zugeordnet sind,
es gibt welche, wo es zum Dokumententyp einen Gruppentyp gibt, und den
Fall, da� zu einem Gruppentyp mehrere Eintr�ge in der Tabelle
Dokumententypen gibt.
Wenn nun ein Benutzer angelegt wird, gibt es folglich drei
M�glichkeiten:
1. Es ist nicht m�glich, der Benutzergruppenzuordnung eine Auswahl an
Dokumenten anzubieten, da es keine Gruppe als Fremdschl�ssel n der
Dokumententyptabelle gibt.
2. es gibt eine Liste an Eintr�gen, die eindeutig ist
3. es gibt die M�glichkeit, da� die Dokumentenliste doppelte - oder
mehrfache - Eintr�ge enth�lt. Dieser dritte Fall bereitet mir nun
Kopfzerbrechen: Die Bezeichnungen, die als auswahl angeboten werden,
sollen nur einmal dastehen, andererseits sind aber mit einem einfachen
Eintrag ( d.h. einer Checkbox ) mehrere Ids verbunden, von denen jede
einen Eintrag in der Kreuztabelle bekommen soll. Und genau das bekomm
ich nicht hin.
Falls es hier jemanden gibt, der da durchsteigt m�ge er sich bitte
meiner erbarmen.
Ich habe schon mit folgendem Ansatz gespielt: Die Stored Procedure, die
mir die Liste - derzeit mit mehrfachen Textausgaben - die Liste erzeugt,
k�nnte doch bestimmt so modifiziert werden, da� ich anstelle der ID eine
Art Array bekomme, die ich im Prinzip wie eine ID verwende, oder? Wenn
das geht, wie mach ich sowas?
Die sp sieht in etwa so aus:
CREATE PROCEDURE spSearchDokumenteByGruppen_ID(@Gruppen_ID int)
AS
SELECT
Dokumente.Dokument_ID,
Dokumente.Dokument_Beschreibung
FROM
Dokumenttyp INNER JOIN
Dokumente ON Dokumententyp.Dokumenttyp_ID =
Dokumente.FID_Dokumenttyp
WHERE (Dokumenttyp.FID_Gruppen_ID = @Gruppen_ID)
ORDER BY Dokumente.Dokument_Beschreibung
GO
Das ergebnis sieht derzeit beispielsweise so aus:
10 Bestellung
11 Angebot
12 Angebot
13 Anfrage
15 Anfage
17 Fax
18 Liste
Die ergebnisliste soll dann aber halt nur einmal den Wert Angebot haben,
die Auswahl soll aber sp�ter zwei Eintr�ge in der Kreuztabelle bewirken.
Ich kenn mich nicht mehr aus :-(
Bitte helft mir
Christian
| [aspdecoffeehouse] als archive@jab.org subscribed
| http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp