Jeg ville nok vælge at beholde dokumenterne som filer. Når der så bliver tilføjet et nyt fil, ville jeg med et script læse hvert ord og angive i min database at det dokument indeholder de ord...
På den måde kan du hurtigt sortere efter hvad der indeholder alle ord, lidt af ordene osv.
Ved at have en tabel over ord [ORDTBL] : ORD | ID
En over artikler: [ARTIKELTBL] TITEL | ID | FIL
Og en over hvilke ord artiklerne indeholder: [INDEHOLDERTBL] ORDID | ARTIKELID
Min SQL er lidt rusten, men:
- SELECT DISTINCT ARTIKELTBL.TITEL, ARTIKEKTBL.ID, ARTIKEKTBL.FIL FROM ARTIKEL.TBL JOIN INDEHOLDERTBL ON ARTIKELTBL.ID = INDEHOLDERTBL.ARTIKELID
- JOIN ORDTBL ON ORDTBL.ID = INDEHOLDERTBL.ORDID
- WHERE ORDTBL.ORD = 'ord' OR ORDTBL.ORD = 'ord' osv
Ovenstående returnerer en liste over de artikler der indeholder et af ordene. Kan ikke lige huske hvad der skal til for kun at få dem der indeholder alle sørgeord, da jeg i forbindelse med .NET bruger LINQ til at lave min forespørgsler... dog vil jeg tro at du ved at fjerne disinct hurtigt kan lave en anden query hvor der siger at en række skal fremgå X antal gange.
Men altså hvad du kan få databasen til at klare for dig, skal du bruge.. det er ifølge min underviser altid det hurtigste...