Autor | Zpráva | ||
---|---|---|---|
Kovanda Profil |
#1 · Zasláno: 9. 2. 2011, 14:26:15
Předem zdravím všechny odborníky. Potřebuji poradit, poněvadž už do toho hledím týden, jakou vytvořit DB v MySQL a jak ji nejlépe updatovat v PHP pro skoro pyramidový systém. Zkrátka potřebuji DB zaměstnanců, asi jednu nebo více DB jejich bodů a propojit to tak že pokud nějaký zaměstnanec získá body aby se tyto body přičetly i jeho všem nadřízeným s tím že každý může mít nějakého zaměstnance. (jednoduše napsáno) Pokud bude mít někdo chuť mi s tím pomoci, rozepíšu to tu víc. Předem moc dík za jakoukoliv radu.
|
||
TomášK Profil |
#2 · Zasláno: 9. 2. 2011, 14:45:42
Každý zaměstnanec bude mít odkaz na nadřízeného (parent_id). Při přidání bodů zaměstnanci se rekurzivně přidají body všem jeho nadřízeným. Nejjednodušší by asi bylo napsat na to trigger do databáze, ale jde to řešit i na úrovni php.
|
||
Kajman_ Profil * |
#3 · Zasláno: 9. 2. 2011, 15:10:45
Triggerem to asi nepůjde, bude se bránit, že nejde upravovat tabulku, nad kterou byl vyvolán.
Ale mohla by se vytvořit mysql procedura, která by to všem přičetla. Asi by to chtělo přidat nějakou kontrolu zacyklení přičítání bodů. |
||
Kovanda Profil |
#4 · Zasláno: 9. 2. 2011, 15:19:03
Předem díky za reakce. O nějaké rekurzivní funkci jsem uvažoval, ale mé vědomosti (samouk) nějak nestačí na to, jak by to mělo vypadat aby po každém cyklu zjistila dalšího nadřízeného.
|
||
xmark Profil |
#5 · Zasláno: 9. 2. 2011, 15:33:03
Možná bych použil "hrubou sílu". SELECTem bych zjistil, jestli má osoba nějaké nadřízené a zapamatoval bych si je v poli. Pak updatoval body dané osoby. A pak totéž udělal se všemi "zapamatovanými" zaměstnanci. A toto pořád dokola, dokud by se mi načítali nadřízení.
(vím že to je rekurze, jen se snažím ji popsat prakticky) |
||
Kovanda Profil |
#6 · Zasláno: 9. 2. 2011, 15:44:25
Jako každému zaměstnanci vytvořit vlastní tabulku nadřízených?? Nebo další funkcí nějak (asi nevím jak) zjišťovat dalšího nadřízeného až naplním pole.
|
||
Kcko Profil |
#7 · Zasláno: 9. 2. 2011, 15:48:46
Kovanda:
zamestanecID | nadrizenyID |
||
xmark Profil |
#8 · Zasláno: 9. 2. 2011, 15:49:09
Kovanda:
Nevím jak vypadá struktura databáze, ale předpokládám, že každý zaměstnanec má jednoho nebo několik(?) přímých nadřízených. Takže jde o to je zjistit, zapamatovat v nějakém pomocném poli a pak na ně aplikovat tentýž postup, jaký jsi použil na toho zaměstnance. |
||
__construct Profil |
#9 · Zasláno: 9. 2. 2011, 15:51:38 · Upravil/a: __construct
|
||
Kovanda Profil |
#10 · Zasláno: 9. 2. 2011, 16:03:53
no pokud by to měla být pouze jedna tabulka obsahující pouze zamestnanec ID a nadrizeny ID tak opravdu nevím jak by mělo vypadat hledání všech nadřízených. Příklad vztahu vedoucí a zaměstnanec
ID1 / \ ID2 ID3 / \ / \ ID4 ID5 ID6 ID7 |
||
Kovanda Profil |
#11 · Zasláno: 9. 2. 2011, 16:08:54
__construct:
Moc dík to by mohlo být ono. Du studovat. |
||
Časová prodleva: 13 let
|
0