Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z koncepcją tabel w DB, różne typy użytkownika
mikajlo
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 13.12.2010

Ostrzeżenie: (0%)
-----


Witam,
jestem w trakcie tworzenia aplikacji która ma ułatwić zarządzanie klubem sportowym. Zacząłem od porządnego zaprojektowania struktury bazy danych i zastanawia mnie pewna kwestia.. Mianowicie w bazie muszą być przechowywane informacje o osobach, które posiadają różne "statusy" i tym samym różne dane będą przechowywane na ich temat.

Mniej więcej takie "typy" osób powinny być przechowywane w bazie:
(IMG:http://oi49.tinypic.com/21buquv.jpg)
Jak widać każda z tych typów różni się od siebie kilkoma kolumnami (imie i nazwisko powtarza się wszędzie). Po którce wyjaśnie o co chodzi...
Użytkownik jest to osoba która jest w klubie i posiada swoje konto. Administrator tez jest uzytkownikiem więc pewnie wystarczy dodać pole boolowskie 'admin' i sprawa będzie załatwiona (może to być jedna wspólna tabela).

Natomiast zawodnik jest innym rodzajem użytkownika, tzn nie posiada konta w bazie na które moze się zalogowac do systemu, ale jest osobą która przyjechała na organizowane zawody, np. lekkoatletyczne i jest ona wprowadzana do systemu aby nadac jej numer identyfikacyjny dzięki któremu bedzie wiadomo w jakich konkurencjach taka osoba brała udzial oraz jakie wyniki osiągnęla, aby na końcu móc przygotować tabele z końcowymi wynikami wszystkich zawodników..

Trzeba tutaj dodać, że każdy użytkownik (posiadający konto w systemie) jest niejako "automatycznie" zawodnikiem, ale nie każdy zawodnik jest uzytkownikiem.. Dodatkowo należy uwzględnich taką sytuację, że zawodnik nie posiadający dotychaczas swojego konta, zechce je założyć i stanie się użytkownikiem..

Może wiecie jak takie informacje zazwyczaj zapisuje się w bazie danych albo jak Wy byście to zrobili ? Czy tworzy się osobne tabele dla uzytkownika i zawodnika ? (ale wtedy powstaje redundancja danych i problem z "transformacją" zawodnika do uzytkownika)

Pozdrawiam i czekam na sugetie..
Michał
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mikajlo
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 13.12.2010

Ostrzeżenie: (0%)
-----


@Lysiur - dzięki za zainteresowanie.

Czyli o ile dobrze rozumiem, tworzona jest tabela osoba, w której jest id_type_osoba i wtedy w zależności od "typu" danego uzytkownika wypisywane są charakterystyczne dla niej dane?
Czyli użytkownik musi zawierać klucz obcy z tabeli osoba, aby "zaopatrzyć się" w pełne informacje?

Jeżeli tak to ma wyglądać, to chyba można to tak zrobić? Pytanie jest - czy to jest dobra praktyka (i tak to się robi) ?
Bo ogólnie dość dużo złączeń wtedy wychodzi, no ale gdzieś na taki zarzuty czytałem odpowiedzi typu : "bo w końcu to baza relacyjna i muszą byc relacje" (IMG:style_emoticons/default/tongue.gif)

Ten post edytował mikajlo 11.02.2013, 22:02:56
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 02:47