serialize pole a vyhledávání v něm pomocí SELECTu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
drakul
Člen | 37
+
0
-

Zdravím,
rád bych se zeptal, jak řešíte problém, kdy potřebujete vyhledávat v „serializovaných“ řetězcích v databázi. Napadají mě dvě řešení:

  1. serializovat hledaný řetězec a ten pomocí LIKE zkusit hledat (nejsem si jistý,zda-li by to 100% fungovalo)
  2. všechna pole postupně deserializovat a porovnávat s hledaným řetězcem (asi úplná blbost, protože by to strašně zatížilo výpočetní výkon)

Konkrétní případ:
(3.) nepoužívat serializovaná pole, ale rozdělit jej do sloupců do tabulky
Konkrétní případ:
tabulka burza_ucebnic – pole inzerat_id, nazev_knihy, pro_rocnik (= studenti jakého ročníku knihu využijí – zde mám serializované pole z multiselectu).
Které řešení tedy zvolit, popř. předělat strukturu tabulky na inzerat_id, nazev_knihy, rocnik1 (bool), rocnik2 (bool), …
Díky za odpověď

vrana
Člen | 131
+
0
-

Správná struktura využije tabulku ucebnice_rocnik (ucebnice_id, rocnik). Ta se pak i velmi snadno prohledává.

drakul
Člen | 37
+
0
-

Jakube děkuju za odpověď. Taky jsem nad touhle možností uvažoval, ale nakonec jsem ji zavrl kvůli „pracnosti“ s editováním záznamů (editování dvou tabulek zároveň). Ale při bližším prozkoumání problému se nakonec k tomuto řešení asi budu muset přiklonit :)

bojovyletoun
Člen | 667
+
0
-

Tenhle článek ti pomůže navrhnout db správně http://programujte.com/?…