:) Nic takoveho jsem nepouzil. Vzdycky jsem si nasel "simple example" na konkretni sql prikaz a prostudoval, co a jak resi.
Hlavni je, umet si predstavit, ze tabulka v databazi vypada jako tabulka v excelu. A pokud neco delis na kategorie, tak je dobre mit zvlast tabulku s nazvy kategorii a pracovat dal s id_kategorie pro rychlejsi vyhledavani.
Treba jako mas seznam lidi a ti maji bydliste ve mestech. Logicky se nabizi moznost mit tabulku mest zvlast a seznam lidi zvlast. Kdyz budes hledat vsechny z mest zacinajicich na "pra" (praha, prachatice...), tak prohledas 100 radkovou tabulku mest. Vyberes vsechna id mest a pouzijes id do dotazu. id jsou typu INT, coz je delka obvykle 2 byte a vic. "pra" je delky 3. Takze vyhledavani bude rychlejsi asi v pomeru 2/3.
Taky je dobre, u mysql, pouzit indexy. Spousta lidi nevi, ze si musi indexy rucne vyklikat v phpmyadminovi nebo pridat k sql dotazu pro vytvoreni tabulky. Bez indexu takove hledani moc rychle neni, u mysql.
No, a to, nac ses ptal ty, to je obecne trochu problem. Treba se nad tim trochu zamyslet.
- atributy maji nazev (tabulky: at_list)
- atributy maji skupiny (tabulky: at_skupiny, at_skup_list)
- hodnoty atributu slouzi pro vyhledavani - cislo se vyhleda ryxchleji nez text, takze by mozna bylo dobre oddelit zvlast textove a ciselne atributy. Cili, bud to dat jako dva ruzne sloupe do jedne tabulky nebo pro ciselne udelat zvlast tabulku a oznacit v at_list typ atributu.
Samozrejme je tu moznost to proste zplacat vsechno do jedne tabulky, jako text. Vyhledavani bude pomalejsi, budes mit treba duplicitni hodnoty atributu s ruznymi nazvy "napeti" "napětí" "Napeti". Ale usetris furu tabulek :) A snadneji se bude delat import/export do excelu (csv format). Ale budes mit spoustu prazdnych bunek a kvuli novym atributum budes pridavat sloupce. A take se zjednodusi SQL dotazy, kdyz je to v jedne tabulce. Ale je to pro stavajici asystemy spis tahorsi cesta s vyhledy do budoucna.
nazev, pouzdro, napeti, vaha, rozmery
"rezistor", "...", "...", null, null
"kladivo", null, null, "...", "..."
(excel to takto dokaze precist i zapsat, jako CSV)