| Autor | Zpráva | ||
|---|---|---|---|
| misak6 Profil |
#1 · Zasláno: 5. 6. 2008, 22:38:41
Ahoj.
Právě řeším problém se zobrazením podobných článků. Mám databázi článků a v ní mám mimo jiné i sloupec s tagy, podle kterých bych chtěl vyhledávat podobné články (články které mají stejný aspoň jeden tag). Jediné co mě napadlo je, rozdělit si ty tagy pomoci explode() na jednotlivá slova a postupně pak sestavit dotaz pomocí LIKE. To se mi zdá ale dost těžkopádné řešení a navíc ten dotaz může být dost dlouhý když je těch tagů víc. Moje otázka je, jak to lze udělat lépe. Díky. |
||
| ninja Profil |
#2 · Zasláno: 6. 6. 2008, 00:43:29
Spatne je uz navrzena struktura databaze, jestli mas u kazdeho clanku jeden sloupec a v nem vicero tagu oddeleny carkou nebo mezerou.
Lepsi je vytvorit separatni tabulku tagy, kde budou sloupce ID a TAG a ta bude vazbou M:N navazana na tabulku s clanky. Pak bude hledani jednoduche a rychle. Navic dojde k uspore mista. |
||
| misak6 Profil |
#3 · Zasláno: 6. 6. 2008, 14:50:48
Spatne je uz navrzena struktura databaze, jestli mas u kazdeho clanku jeden sloupec a v nem vicero tagu oddeleny carkou nebo mezerou.
Lepsi je vytvorit separatni tabulku tagy, kde budou sloupce ID a TAG a ta bude vazbou M:N navazana na tabulku s clanky. Pak bude hledani jednoduche a rychle. Navic dojde k uspore mista. Diky za radu. Ještě se rozmyslím, jestli to předělám na tu podobu, kterou říkáš nebo se to pokusím nějak vyřešit v té současné struktuře. |
||
| Mastodont Profil |
#4 · Zasláno: 6. 6. 2008, 14:52:46
misak6
Dotaz s LIKE je výrazně pomalejší, speciálně s % na začátku - a to by byl tvůj případ. |
||
| souki Profil |
#5 · Zasláno: 6. 6. 2008, 16:49:19
Fulltext :)
|
||
|
Časová prodleva: 17 let
|
|||
0