User since
2003-08-14
2022
Artikel
BenutzerIn
Hallo,
ich habe das Problem das ich zwei Tabellen habe, die in einer 1:n Beziehung stehen:
Unternehmen Kunde -> Ansprechpartner
in einem Suchdialog soll nach Feldern aus beiden Tabellen gesucht werden können.
Suchdialog:
| Dropdownlist v|-| Eingabefeld |-| Suchen-Button |
Meine Überlegung ab hier, ist es nach den beiden Primärschlüsseln der Tabellen zu suchen. Wird nach einer Firma gesucht erhalte ich die IDs der in Frage kommenden Firmen und die IDs aller Ansprechpartner in diesen Unternehmen. Selbiges müsste genauso funktionieren wenn ich nach einem Ansprechpartner suche.
im nächsten Schritt stelle ich mir vor, die IDs in einen Hash zu stecken, da die Unternehmens-IDs mehrfach vorkommen aufgrund der ID-Paare beider Tabellen. Die IDs der Unternehmen werden also die Keys des Hash und die IDs der Ansprechpartner in diesen Unternehmen kommen in einen anonymes Array, das als Value des Hashes dient.
Die Ausgabe erfolgt dann als verschachtelte Tabelle:
+ Unternehmen 1
- Ansprechpartner 1
- Ansprechpartner 2
+ Unternehmen 2
- Ansprechpartner 3
Ist diese Herangehensweise sinnvoll, oder ist ein anderer Weg empfehlenswerter?
Gruss,
Ronnie\n\n
<!--EDIT|Ronnie|1068209746-->
User since
2003-08-04
1706
Artikel
HausmeisterIn
Ich erlaube mir mal einige konkretere Aussagen einzuhohlen.
Wie sehen grob die Tabellen aus?
welche Spalten von welchen Tabellen willst du haben?
was soll das Kriterien der abfrage sein?
Welche Relationen bestehen zwischen den Tabellen?
Gruß Alex\n\n
<!--EDIT|format_c|1068211722-->
User since
2003-08-14
2022
Artikel
BenutzerIn
Tabelle Unternehmen:
UID - Primärschlüssel, auto-inkrement,
Firmenname,
Ort,
PLZ,
usw.
Tabelle Ansprechpartner:
CID - Primärschlüssel, auto-inkrement,
UID - Fremdschlüssel (Tabelle Unternehmen)
Nachame,
Vorname,
usw.
Es handelt sich also um eine klassische 1:n Beziehung. In jedem Unternehmen können mehrere Ansprechpartner existieren.
Es können alle Spalten, per Dropdownlist, als Suchkriterium gewählt werden. Ausgegeben werden sollen die Daten wie in obigerem Schema (1.Post unten).\n\n
<!--EDIT|Ronnie|1068213667-->
User since
2003-08-14
2022
Artikel
BenutzerIn
[quote=jan10001,07.11.2003, 22:46]Arbeitest du mit MySQL?[/quote]
Ja!
User since
2003-08-14
962
Artikel
BenutzerIn
Dann verwende doch "select distinct" bei der Abfrage.
User since
2003-08-14
2022
Artikel
BenutzerIn
[quote=jan10001,08.11.2003, 00:41]Dann verwende doch "select distinct" bei der Abfrage.[/quote]
Hmm, habe mal probiert aber das löst mein Problem nicht. Habe aber festgestellt das ich einen LEFT-JOIN verwenden muss, da ich ja alle Eintäge in 'Unternehmen' sehen möchte, auch wenn noch kein Ansprechpartner angelegt ist.
User since
2003-08-14
962
Artikel
BenutzerIn
Genau genommen verstehe ich dein Problem nicht? Wenn es für eine Firma keinen Ansprechpartner gibt, kann man den auch nicht suchen oder? Eigentlich reicht es zwei Abfragen zu definieren:
1. Firma bekannt -> Ansprechpartner wird gesucht
2. Ansprechpartner bekannt -> Firmen werden gesucht
User since
2003-08-14
2022
Artikel
BenutzerIn
[quote=jan10001,09.11.2003, 13:57]Genau genommen verstehe ich dein Problem nicht?[/quote]
Das Problem ist, das in einem Suchdialog nach Feldern aus zwei Tabellen gesucht werden kann, die in einer 1:n bzw. 0:n Beziehung stehen. Du kannst so z.B. alle Ansprechpartner suchen die 'Müller' heissen unabhängig von dem Unternehmen in dem diese sich befinden oder du suchst nach einem Kunden z.B. 'Regierungspräsidium' und erhältst dann alle Unternehmen auf die das zutrifft sowie alle Ansprechpartner in diesen Unternehmen.
Ich glaube das es so funktionieren kann wie ich es oben beschreiben habe, nur das in diesem Fall keine Sortierung möglich ist.\n\n
<!--EDIT|Ronnie|1068386957-->
User since
2003-08-14
962
Artikel
BenutzerIn
QuoteDas Problem ist, das in einem Suchdialog nach Feldern aus zwei Tabellen gesucht werden kann, die in einer 1:n bzw. 0:n Beziehung stehen. Du kannst so z.B. alle Ansprechpartner suchen die 'Müller' heissen unabhängig von dem Unternehmen in dem diese sich befinden oder du suchst nach einem Kunden z.B. 'Regierungspräsidium' und erhältst dann alle Unternehmen auf die das zutrifft sowie alle Ansprechpartner in diesen Unternehmen.
Ich glaube das es so funktionieren kann wie ich es oben beschreiben habe, nur das in diesem Fall keine Sortierung möglich ist.
Was spricht dagegen den Suchdialog zu erweitern und den User angeben zu lassen was er sucht?