Autor | Zpráva | ||
---|---|---|---|
Jack06 Profil |
#1 · Zasláno: 20. 11. 2009, 11:47:36
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 |
#2 · Zasláno: 20. 11. 2009, 11:55:47
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 |
#3 · Zasláno: 20. 11. 2009, 12:12:02
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 * |
#4 · Zasláno: 20. 11. 2009, 12:30:11
A do stromu dáváte všechny výrobky nebo jenom kategorie?
|
||
Jack06 Profil |
#5 · Zasláno: 20. 11. 2009, 12:33:36
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 |
#6 · Zasláno: 21. 11. 2009, 10:20:11
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 * |
#7 · Zasláno: 21. 11. 2009, 10:48:35
Pokud bude výrobek v maximálně jedné kategorii, tak to bude asi rozumná cesta.
|
||
Jack06 Profil |
#8 · Zasláno: 21. 11. 2009, 11:02:17
Kajman:
A kdyby byl ve vícero kategorií? Jak bych to měl dělat? |
||
Kajman_ Profil * |
#9 · Zasláno: 21. 11. 2009, 11:16:34
Tabulka kategorií, tabulka výrobků, tabulka udávající vazbu mezi kategoriemi a výrobky.
|
||
Jack06 Profil |
#10 · Zasláno: 21. 11. 2009, 11:25:17 · Upravil/a: Jack06
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 * |
#11 · Zasláno: 21. 11. 2009, 12:23:46
Jak dáte v dvoutabulkové verzi jedno zboží do více kategorií při dodržení první normální formy?
|
||
Jack06 Profil |
#12 · Zasláno: 21. 11. 2009, 12:30:56
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 * |
#13 · Zasláno: 21. 11. 2009, 12:38:07
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í.
|
||
Časová prodleva: 14 let
|
0