Aloha
AndreasJBittner hat geschrieben:wozu willst Du so viele Tabellen anlegen? Du brauchst eine Tabelle mit Stichworten, eine mit den Buchtiteln und eine weitere, in der Du jeweils die ID des Stichworteintrags und die des Buches einträgst
Das hilft dem Fragesteller allerdings nicht bei seinem ursprünglichen Wunsch:
sunrise hat geschrieben:Das soll dann so funktionieren: Ich gebe ein Suchwort ein und erhalte als Ausgabe alle Buchtitel, das dazugehörige Kapitel und ggf. das Unterkapitel, wo überall dieses Suchwort auftaucht.
Prinzipiell würde ich das so machen:
Tabelle Buch:
ID (PK)
Buchname
(sonstige Angaben, Author, Erscheinungsdatum, Ausgabe etcetc)
Tabelle Kapitel
ID (PK)
ID_Buch (FK Tabelle Buch -> ID)
Katelname (beispielsweise)
Tabelle Unterkapitel
ID (PK)
ID_Kapitel (FK Tabelle Kapitel -> ID)
Unterkapitelname (beispielsweise)
Stichwörter
Buch - Kapitel: 1 zu n
Kapitel - Untrekapitel 1 zu n
In die Spalte Stichwörter schreibst Du dann nach und nach einfach die enthaltenen Stichwörter, z.B. getrennt durch Leerzeichen ala "Sanskrit Savasana Guru"
Das Ergebnis liefert Dir dann eine Abfrage der Art
Code: Alles auswählen
SELECT "Buchname", "Kapitelname", "Unterkapitelname" FROM
"Buch" JOIN "Kapitel" ON "Buch"."ID" = "Kapitel"."ID_Buch" JOIN "Unterkapitel" ON "Unterkapitel"."ID_Kapitel" = "Kapitel"."ID"
WHERE "Unterkapitel"."Stichwörter" LIKE '%suchbegriff%'
Je nach verwendeter Datenbank gibt es auch die Möglichkeit, per Full Text Search zu suchen, diese Suchart ist genau für derartige Vorgänge gedacht, ob die eingebettete HSQLDB das mitmacht, weiss ich nicht.