Diskuze: Více proměnných v jednom sloupčeku-mySQL
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Asi bych to řešil "další" tabulkou (vazební - s vazbou M:M) kam by sis ukládal IDčka zařízení a IDčka uživatelů. Tím pádem by mohlo být přiřazeno uživatelů k zařízení kolik budeš chtít a zároveň jeden uživatel může být "přiřazen" k více zařízením.
Přesně jak píše kolega. Navíc select který jsi zde popsal se ti dříve nebo později vymstí minimálně tím, že bude neskutečně pomalý. Raději ani nemluvě o tom že jména uživatelů - tedy uživatelská data jsou na vazbení velmi, velmi nevhodná.
Děkuji za pomoc.
Jak jinak by jsi Selectoval?
Samozřejmě si budu tahat jen věci, se kterými pracuji a pracovat budu s ID uživatelů, nikoliv se jmény.
Selectovat se dá třeba takhle
SELECT (jmeno + ' ' + prijmeni) AS uzivatel FROM Users WHERE UserId IN(SELECT UserId FROM Zarizeni WHERE ZarizeniId = @parametr)
To už vypadá daleko líp než ten where přes LIKE, jen mám za to že klauzule IN nepoužívá indexy (minimálně v některých RDBMS - např. Firebird), tak že ani toto by nemuselo být úplně optimální ...
Kouknu na to, ale nejspíš tak rozsáhlý select potřeba nebude.
Na první stránce, kde si uživatel vybírá zařízení, je select kvůli
dropdown selectu
"SELECT devid, name FROM vazbadev WHERE userid= @id"
A když už jsme u rychlosti. Na další stránce vyčítám o zařízení všechna infa kromě "id" a "vlastník" (cca 20 proměnných). Tak jestli je rychlejší vybrat vše a poté jen nepoužít tyto 2 proměnné, nebo hezky do selectu vypsat jen to, co použiji.
Na první stránce, kde si uživatel vybírá zařízení, je select kvůli dropdown selectu
Ten můj příklad byl pro to, abys vybral, kteří uživatelé jsou přiřazeni k určitému zařízení
Zobrazeno 8 zpráv z 8.