Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Projekt bazy danych
Forum PHP.pl > Forum > Bazy danych > MySQL
LukPG
Witam

Chciałbym wykonać bazę danych, opisującą zarządzanie urlopami pracowników. Istnieją trzy tabele:
Pracownicy - zawierająca informacje o pracownikach, np. id_pracownika, imie, nazwisko, adres, telefon, id_karty
Karty - zapisane są na niej informacje dotyczące urlopów, (każdy użytkownik posiada dokładnie jedną kartę) np. id_karty, data_wydania, data_wygasniecia, ...
Urlopy - informacje dotyczące urlopów, zapisane na karcie, id_urlopu, id_karty ,rodzaj_urlopu, data_rozpoczecia, data_zakonczenia, rodzaj
Zastanawiam się, czy takie połączenie tabel urlopy i karty jest poprawne? Czy jako klucz główny tabeli urlopy lepiej wybrać pojedynczą wartość id_urlopu, czy lepiej wybrać klucz złożony id_urlopu+id_karty. Prosiłbym o wskazówki. Za pomoc z góry dziękuję.

Pozdrawiam
patryczakowy
moim zdaniem powinno być tak id_urlopu- klucz główny id_karty- klucz obcy z karty
a do tabeli karty dodać klucz obcy id_pracownik żeby było wiadomo która karta do którego pracownika
LukPG
Dzięki za szybką odpowiedź. Napisałeś, żeby do tabeli karty dodać klucz obcy id_pracownika. W tym projekcie zrobiłem trochę inaczej: do tabeli pracownicy dodałem klucz obcy id_karty z tabeli karty. Zastanawiam się, która z tych dwóch możliwości byłaby lepsza?
patryczakowy
to w tym wypadku jak masz w tabeli pracownicy id_karty to w tabeli urlopy kluczem obcym powinno być id_pracownika a nie id karty
LukPG
Ale dlaczego w tabeli urlopy nie może być również klucza obcego id_karty? W takim wypadku, istniałyby dwa takie same klucze obce: w tabeli pracownicy oraz w tabeli urlopy. Czy obecność dwóch identycznych kluczy obcych jest błędem? Cały czas jestem w stanie wydobyć z bazy wszystkie potrzebne informacje - istnieje połączenie pomiędzy wszystkimi tabelami.
kaminskp
Moim zdanie w tabeli Pracownicy nie powinno być id_karty
Id... może ulec zmianie. Można stworzyć oddzielną tabelę
w której będą id, id_pracownika, id_karty.
Tak bym to zrobił.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.