Autor Zpráva
Jack06
Profil
Dobrý den hodně jsem teď přemýšlel a zkoušel různé výběry z databází a jak utvořit databázi "výrobků"

Nejvíce co jsem se dočetl již na doporučení odtud by mi vyhovovala na výběry dat tato metoda traverzování kolem stromu.

viz:
http://interval.cz/clanky/metody-ukladani-stromovych-dat-v-relacnich-databazich/

Jde o to že budu mít kategorie dejme tomu zkusím nakonec vypsat příklad, a stromení až k výrobkům, kterých může být tisíce, desetitísíce i více.

Tato metoda je asi opravdu dobrá na výběr dat z databáze.., ale co s aktualizací? Vždy když přidám konečný výrobek do nějaké tzv podkategorie, tak budu muset updatovat všechny předešlé záznamy ne? Pokud jsem to dobře z příkladu uváděného na adrese výše vyčetl..

To znamená, pokud budu mít v tabulce 10 000 záznamů a budu přidávat další výrobek, tak bude muset projít smyčka aktualizace tolikrát co je počet záznamů ne? A to se mi zdá strašně náročné na databáze není to tak??

Děkuji za bližší specifikaci a popsání zde je příklad co jsem myslel:

Hmotné zboží
-> Hračky
-> Počítače
     -> Stolní
          -> AMD
              -> Počítač jedna
              -> Počítač dvě
              -> Počítač tři
              .....
              -> Až třeba 800 počítač prostě podle zboží
          -> Intel
              -> Počítač jedna
              -> Počítač dvě
              -> Počítač tři
              .....
              -> Až třeba 800 počítač prostě podle zboží          
     -> Notebooky
             -> Notebook jedna
              -> Notebook dvě
              -> Notebook tři
              .....
              -> Až třeba 800 počítač prostě podle zboží
-> Příslušenství
-> Nábytek

atd



Prostě mám tam třebas už 5 000 výrobků ve 100 kategoriích

Děkuji
Kacko
Profil
Jack06:
Ano je to tak musite updatovat cely strom. Nicmene se predpoklada, ze update provedete z administrace, kde vas doba zpracovani netizi. O to rychlejsi je pak select pri vypisu stromu.
Nox
Profil
Kdybys měl možnost pracovat se systémem i na lokálu, tak bys mohl exportnout tabulky co potřebuješ, provést úpravy a zase tam nahrát až celou novou tabulku, to by asi bylo méně náročné

Nebo to můžeš udělat tak, že si úpravy uložíš do cronu a provedou se až další den třeba ve 3 ráno, kdy asi bude návštěvnost minimální takže
Kajman_
Profil *
A do stromu dáváte všechny výrobky nebo jenom kategorie?
Jack06
Profil
Když mě jde o to že já vytvořím stromy kategorií, ale "výrobky" si budou zařazovat uživatelé.. Veškeré "výrobky" k daným kategoriím budou od uživatelů

Výrobky mám v uvozovkách, jelikož těmi výrobky budou jejich adresy na weby s nějakým popisem

Vlastně něco jako katalogy.. Hlavní kategorie jsou defaultně vytvořené, ale výrobky ( adresy na weby v katalogu ) si přidávají už uživatelé..

Hledám způsob, jak to udělat aby to působilo co nejmenší zátěž v konečném výsledku..
Jack06
Profil
Bude tedy lepší udělat dvě tabulky? Jednu tabulku, ve které budou čistě kategorie a podkategorie řešené traverzováním kolem stromu a druhou tabulku (s výrobkama), která bude mít odkazové ID na danou kategorii (první tabulku) a zbytek informací ?

Děkuji za rady
Kajman_
Profil *
Pokud bude výrobek v maximálně jedné kategorii, tak to bude asi rozumná cesta.
Jack06
Profil
Kajman:
A kdyby byl ve vícero kategorií? Jak bych to měl dělat?
Kajman_
Profil *
Tabulka kategorií, tabulka výrobků, tabulka udávající vazbu mezi kategoriemi a výrobky.
Jack06
Profil
Kajman:
Takže ty tabulky by pak vypadali nějak takto:
Kategorie :

ID	NAME	                PARENT_ID	LFT	RGT
1	Kategorie zboží            0           1  	22
2	Procesory                  1           2      15
3	Intel                      2           3	   8
4	Pentium IV                 3           4	   5
5	Celeron                    3           6	   7
6	AMD                        2           9	  14

Propojovací:

ID	CAT_ID	VYROBEK_ID
1	    0             1	
2	    1             1	
3	    2             2	
4	    3             2	
5	    3             3	
6	    2             4	

Výrobky:
ID	NAME	                další sloupce...
1	Jmeno1	                ...
2	Jmeno2	                ...
3	Jmeno3	                ...
4	Jmeno4	                ...


?? // v čem to je lepší, když bych stejně použil indexy a podmínku where id_cat na tabulku viz jak jsem psal prvně jen se dvěma tabulkama.
Kajman_
Profil *
Jak dáte v dvoutabulkové verzi jedno zboží do více kategorií při dodržení první normální formy?
Jack06
Profil
Kajman:
Jak dáte v dvoutabulkové verzi jedno zboží do více kategorií při dodržení první normální formy?
nj pravda musel bych to udělat znovu a navyšoval bych počty a objem záznamů..

A tak tedy jak jsem ukázal návrh těch tabulek s mezitabulkou tak tak je to dobré?
Kajman_
Profil *
Osobně bych v propojovací dal primární klíč ty dva sloupečky (sloupec id je k ničemu). A také tam přiřazujete zboží k neexistující kategorii 0. To by mohly případně ošetřovat cizí klíče. Jinak to opravdu obvyklé řešení.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: