Moin
Danke. DAS ist mal ein Ansatz.
Hab seit fünf Jahren meine Freude dran ;)
Recht einfach wird eine Suchfunktion (sortiert nach Relevanz):
my $q = qq(
SELECT ent, match(val) against(?) as rel
FROM $dal->{TABN} WHERE match(val) against(? in boolean mode)
group by ent order by rel desc
);
Hierzu brauchts einen FULLTEXT-Index auf das Feld val
und die Collation ist anzupassen. Es kann eine WHERE-Klause geben, womit die Suche auf bestimmte "Quasi-Felder" eingegrenzt werden kann. Quasi-Feld z.B. att='subject' (Suche nur in Werten, die das Attribut 'subject' haben).
Für eine stärkere Kopplung an die DB, z.B. wegen Datum/Zeit-Feldern kann diese "Hash-Tabelle" natürlich auch ganz normal als "Detail-Tabelle" an andere Tabellen gejoint werden.
Andererseits können auch bestehende DB-Designs durch Anhängen einer EAV-Tabelle einfach erweitert werden ohne dass Felder hinzugefügt werden müssen.
Schöne Grüße.