Autor | Zpráva | ||
---|---|---|---|
sedgar Profil * |
#1 · Zasláno: 22. 4. 2008, 10:50:18
Dobry den,
chcel by som sa spytat, ako najefektivnejsie vytvorit viacnasobnu strukturu poloziek jedneho druhu... aby som to trosku ozrejmil uvediem priklad - povedzme struktura zamestnancov v nejakom podniku: 1. riaditel podniku 2. vykonny riaditelia 3. veduci oddeleni 4. veduci pracovnych skupin 5. zamestnanci moznosti, ktore poznam: 1. kazdy zamestnanec bude mat ID nadriadeneho - v tom pripade lahko zistim vsetkych zamestnancov o jednu uroven pod sebou, horsie to je so zistovanim zamestnancov o 2 a viac urovni... 2. kazdy zamestnanec bude mat vlastny strukturovany kod v tomto priklade 5ciferny: 1. riaditel podniku: 10000 2. vykonny riaditelia: 11000 - 19000 3. veduci oddeleni: 11100 - 11900, 12100 - 12900,.... 4. veduci pracovnych skupin: 11110 - 11190, 11210 - 11290,... 5. zamestnanci: 11111 - 11119, 11121 - 11129,... pricom sa bude zistovat na zaklade podobnosti kodov (pod 11000 budu patrit vsetci zamestnanci s kodom 11001 - 11999) problemom je, ze o jeden stupen nizsie moze byt max. 9 zamestnancov... Co by ste mi poradili? ako vytvorit podobnu viacnasobnu strukturu aby bola efektivna? su tieto dve moznosti dobre? da sa na nich nieco vylepsit? alebo sa podobne struktury navrhuju uplne inac? Dakujem. |
||
martinX Profil * |
#2 · Zasláno: 22. 4. 2008, 11:39:01
Co se týče těch čísel, máte pouze 5 úrovní, tak v DB bude 5 sloupců a v každém z nich bude nějaký integer (snad budou stačit čísla v rámci milionů) a při výběru budete v SQL dotazu, podle úrovně zanoření, tvořit dotaz s určitým rozsahem. Je to ale jen moje myšlenka, která může mít určité nevýhody.
|
||
sedgar Profil * |
#3 · Zasláno: 22. 4. 2008, 11:53:02
martinX
ja som to myslel tak, ze v tabulke bude iba jeden identifikacny stlpec s kodom... ten by sa nacital a pomocou substr() rozkuskoval... myslite ze to zrobit tak, ze urobim viac stlpcov? teda ze pre kazdeho zamestnanca budem definovat: 1.stlpec - id jeho veduceho skupiny 2.stlpec - id jeho veduceho oddelenia 3.stlpec - id vykonneho riaditela 4.stlpec... ten by v tomto pripade ani nemusel byt... nebude sa takto zbytocne zvecsovat tabulka? navyse v pripade zmeny struktury bude treba dodatocne pridavat stlpce... |
||
TSD Profil * |
#4 · Zasláno: 22. 4. 2008, 12:10:29
Řešení martinX mě napadlo taky, ale má to jednu logickou chybu.
Když šéfem Cyrila bude Božena a šéfem Boženy Adam, tak informace o vazbě Adam -> Božena je uložena jednak u Boženy, ale i u Cyrila. To jsou jednak data navíc, ale hlavně je to redundance, kterou nemám rád. Myslím že každá informace by měla v databázi ležet jenom jednou. Jde o to, jak často potřebuješ informaci o celém "vláknu" Adam - Božena - Cyril - Dana - Eva a jak často si vystačíš s vazbou o jednu úroveň. Pokud by to bylo jen trochu možné, tak já na tvém místě bych použil tvou variantu 1. |
||
roberta Profil |
#5 · Zasláno: 22. 4. 2008, 13:32:34 · Upravil/a: roberta
sedgar
tvoja možnosť č. 1 je riešenie problému. zisťovanie zamestnancov o 2 a viac úrovní nie je až taký problém. sú to klasické príklady na 5 minútovky z programovania... http://interval.cz/clanky/metody-ukladani-stromovych-dat-v-relacnich-d atabazich/ |
||
Časová prodleva: 16 let
|
0