hotti: PHP Doppelte Spaltennamen bei JOIN in MySQL

Beitrag lesen

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.