Bartek I.

Bartek I. Systems Support and
Development Officer

Temat: Wiele linków pomiedzy tabelami

Witam,

Od niedawna jestem w nowej pracy, gdzie część raportów sporządził mój poprzednik.
Dziś się bardzo zdziwiłem gdy ujżałem gąszcz linkow miedzy tabelami, takie wielokrotne linkowanie
różnych pól miedzy soba przy trzech czy czterech tabelach, aż się taka czarna siateczka robiła jak sie ustawiło tabele obok siebie jedną nieco wyżej od drugiej.
Nigdy sie z takim linkowaniem raportów nie spotkałem dlatego chciałbym sie spytać szerszego grona użytkowników Crystal Reports czy ktoś się spotkał z takim rozwiązaniem i kiedy sie je stosuje?
Rozumiem że kiedy brakuje unikalnych kluczy żeby bezpośrednio połączyć dwie tabele to sie kombinuje ale w tym przypadku takie klucze najprawdopodobniej istnieją a gdyby nie istniały to możnaby połączyć wiecej tabel, chyba że się mylę?
Zastrzegam ze najprawdopodobniej klucze istnieją bo nie miałem jeszcze możliwości bliżej się temu przyjżeć.
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Wiele linków pomiedzy tabelami

Dużo zależy od tego kto projektował bazę danych i jaki jest stopień normalizacji.
Przykład: informacje teleadresowe o kontrahencie można zapisać w jednej tabeli lub wielu (osobno słownik miast, ulic, itd).

Czasami nie wystarczy złączenie tabel po jednym polu, lecz trzeba łączyć się po kilku polach (klucz złożony) co może komplikować diagram.

Zatem projektant raportów nie ma dużego wpływu na ilość relacji pomiędzy tabelami i zazwyczaj w CR musi je odtworzyć lub pobrać z bazy danych. Oczywiście czasami może coś dodać od siebie i stworzyć tzw. "pająka" :)
Takich sytuacji powinniśmy unikać, ale czasami relacje pomiędzy tabelami są tak złożone, że inaczej się nie da.

Dobre praktyki:
- ograniczamy ilość tabel w raporcie tylko do tych z których faktycznie korzystamy
- unikamy pętli

Jeśli diagram jest zbyt złożony proponuję napisać własne zapytanie SQL, utworzyć widok lub procedurę składowaną i na nam oprzeć raport. Będzie to łatwiejsze do testowania i wydajniejsze. Jest jeden minus - trzeba znać język SQL :)
Bartek I.

Bartek I. Systems Support and
Development Officer

Temat: Wiele linków pomiedzy tabelami

Ładna odpowiedź Panie Marcinie, dzieki.
SQL nie byłby problemem tylko brak relacji miedzy tabelami, nie posiadam mapy powiazan miedzy tabelami w tej bazie danych stad moje zdziwienie i post.

Serdeczne dzieki za odpowiedz i przepraszam za bledy, od 10 lat nie pisze w rodzimym jezyku.



Wyślij zaproszenie do