Hvordan kan jeg visualisere en "ødelagt" hierarkisk datasettet?

stemmer
0

Jeg har en forholdsvis stor datatable strukturert noe sånt som dette:

 StaffNo    Grade    Direct   Boss2    Boss3    Boss4    Boss5    Boss6
 -------    -----    -----    -----    -----    -----    -----    -----
 10001        1      10002    10002    10057    10094    10043    10099
 10002        2      10057    NULL     10057    10094    10043    10099
 10003        1      10004    10004    10057    10094    10043    10099  
 10004        2      10057    NULL     10057    10094    10043    10099  
 10057        3      10094    NULL     NULL     10094    10043    10099

etc....

dvs. en unik ID, deres nivå (grad) i hierarkiet, en registrering av sine knaster ID og ID-ene for ledere ovenfor . (2,3,4, osv refererer til bosset på den bestemte klasse).

Systemet baserer seg på et strengt hierarki - hvis du er sjefen min (/ foreldre) så sjefen din må være min besteforelder.

Dessverre er denne regelen ikke håndheves i datamodellen og data slutt kommer fra andre systemer som ikke engang vet om regelen, enn si observere det. Slik at du og jeg kan dele den samme sjefen, men våre sjefer sjefen vil ikke være den samme.

Merk:

  • Jeg kan ikke endre datamodellen
  • Jeg kan ikke fikse dataene ved kilden.

Så (for øyeblikket) jeg må fikse dataene når den er på plass. Gang en fjorten noen vil gjøre noe som bryter modellen og trenger jeg å endre procs litt å løse. Ikke ideelt, men jeg står fast med dette for de neste seks månedene.

Uansett, spesifikke spørsmål er enkle å produsere, men jeg synes det er vanskelig å holde styr på det store bildet. Søknaden som sitter på dette går uten å klage uansett, men å navigere rundt i systemet blir svært forvirrende. Så mitt spørsmål er:

  • Kan noen anbefale et verktøy (eller teknikk) for å generere en slags ødelagte treet diagram i denne typen situasjoner?

Jeg vil ikke ha noe som vil fikse ting for meg, eller forsøke statistisk analyse, men i det minste noe som vil gi en visuell indikasjon på hvor ødelagt den er til enhver tid.

Merk : For øyeblikket er dette i en SQL Server-database, men jeg er åpen for ideer utnytte C #, Perl eller Python.

Publisert på 28/06/2009 klokken 08:02
kilden bruker
På andre språk...                            


2 svar

stemmer
0

liste alle poster der boss1 har mer enn én boss2:

select staffno, boss1
from brokentable
where boss1 in
(
 select boss1
 from brokentable
 where count(boss2) > 1
)
order by staffno
Svarte 06/09/2009 kl. 23:57
kilden bruker

stemmer
0

Jeg vil starte med en streng hierarkisk oppbygging av organisasjonskartet i en trestruktur bruke rådata for direkte rapporter bare

- 10099
    - 10043
        - 10094
            - 10057
                - 10002
                    - 10001
                - 10004
                    - 10003

Når du har dette, kan du kjøre revisjonsrutiner for å verifisere at alle bossX data er representert riktig i dette treet.

Dette er forutsatt at du stoler direkte rapporter minst nok til å bygge et tre som en baseline, selvfølgelig. Hvis direkte rapporter som er mest sannsynlig å være mistenkt, har du større problemer.

Svarte 01/06/2010 kl. 13:29
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more