Einzelnen Beitrag anzeigen

ganzegal111

Registriert seit: 10. Aug 2007
13 Beiträge
 
#1

(Rekursive) Suche von Objekten in der DB

  Alt 28. Jun 2011, 13:23
Datenbank: InterBase • Version: 7.5 • Zugriff über: DatabaseWorkbench 4
Hallo zusammen,

ich habe einen Teil meiner Datenbank wie in dieser Grafik aufgebaut:

objektkategorieaufbau.png

Hier sind also insgesamt drei Tabellen. Eine mit Objekten, eine mit Kategorien und eine in der ich Objekte mit Kategorien verknüpft habe.

Nun soll der Nutzer wählen können, welche Objekte er sehen möchte. Dazu soll er die Möglichkeit haben, mehrere Kategorien zu wählen und ein Vorgänger Objekt zu wählen. Die angezeigten Objekte sollen dann alle Kriterien erfüllen.

Das Ganze habe ich versucht mit rekursiven Aufrufen zu lösen, doch sind mir diese immer wieder um die Ohren geflogen.

Mein aktueller Versuch sieht so aus:

Code:
begin
  select ID, ID_PARENT, C_NAME from OA_CATEGORIES where ID = :AID into :id, :parent, :C_NAME;
  suspend;
  for select ID, ID_PARENT, C_NAME from OA_CATEGORIES
      where ID_PARENT = :aid
      into :id, :parent, :C_NAME
  DO    suspend;
  begin
      suspend;
      for select id, parent, c_name from p_oa_sub_cats(:id)
          into :id, :parent, :C_NAME
          do suspend;
  end    
end
Hier ist allerdings das Problem, dass nicht alle Kindeskinder angezeigt werden. Es hört nach der ersten Ebene auf. Auch die Performance ist nicht sonderlich toll.

Habt ihr Vorschläge, wie ich das Problem lösen könnte? Auch kleine Änderungen der DB wären noch möglich, da ich mich noch am Anfang des Projekts bin.

Ich freue mich auf eure Ideen

Gruß Chris
  Mit Zitat antworten Zitat