Autor | Zpráva | ||
---|---|---|---|
PetrBK Profil |
#1 · Zasláno: 20. 5. 2020, 00:54:01
Ahoj,
jen bych se chtěl poradit ohledně vhodného řešení tabulky v MySQL. Mám tabulku, kde jsou dva sloupce s datovým typem SET. (1. sloupec má předdefinované 4 hodnoty a druhý 6 hodnot). Na první dobou jsem to řešil vyhledáváním pomocí LIKE ...WHERE `col` LIKE "%val1%" OR `col` LIKE "%val2%" OR `col` LIKE "%val3%" ... Následně jsem přešel k dotazu s regulárním výrazem ...WHERE CONCAT(",", `col`, ",") REGEXP ",(val1|val2|val3)," Ale stále si pohrávám s myšlenou, zda nebude lepší to hodit do pomocné tabulky kde bude jen ID a VALUE Možná řeším úplnou blbost, ale přinejmenším mě zajímá názor zkušenějších, jaké řešení je nejoptimálnější. Díky moc P. |
||
Kajman Profil |
#2 · Zasláno: 20. 5. 2020, 09:43:41
Like nemusí být přesné, pokud je jedna hodnota podřetězec jiné.
Lze použít i funkci find_in_set("val1",`col`) Pokud tam bude víc než malé množství záznamů a bude se podle toho často vyhledávat, tak bych osobně udělal pro každý set dvě další tabulky. Číselník hodnot (číslo, textový popis) a vazební tabulku se sloupci (číselné_id_ze_současné_tabulky, číselné_id_z_číselníku_hodnot). Nad tím pak půjdou dělat indexy a dotazy by mělý být svižnější. |
||
PetrBK Profil |
#3 · Zasláno: 21. 5. 2020, 01:20:13
Díky za názor.
Tabulka nebude až tak velká (ikdyž nevím co je "víc jak malé množství"...), cca 1000 záznmů, ale zmíněné sloupce budou součástí volitelného vyhledávání uživatelem. |
||
Časová prodleva: 4 roky
|
0