Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Jedna osoba - wiele wyksztalcen, jak to ugryżć
Forum PHP.pl > Forum > Przedszkole
mieszko
Na wstepie chcialbym serdecznie przywitac wszystkich czlonkow forum smile.gif Ja nazywam sie Mieszko, mam 20 lat, studiue informatyke na 1 roku. Jako, ze aktualnie poruszamy zagadnienia javy, ktore sa mi wzglednie bliskie postanowilem wyprzedzic material i zajac sie mysql-em i php-em. Minimalne podstawy kojarze z technikum, teraz odswiezam swoja wiedze i postaram sie ja szybko powiekszyc.

Postanowilem, ze zrobie baze danych firmy posrednictwa pracy, umieszcze ja na stronie www i stworze mechanizm logowania dla uzytkownikow, ktorzy beda mieli mozliwosc edytowania danych o sobie. Jestem na etapie projektowania struktury bazy danych i napotkalem (dla wiekszosci z Was forumowicze trywialny) problem. Na ten moment zalaczam zdjecie z aktualnym diagramem. Bede bardzo wdzieczny za kazda sugestie, ktora chociazby przyblizy mnie to postawienia kolejnego kroku w moim projekcie.



W miare mozliwosci prosilbym o odpowiedzenie na ponizsze pytania.

1. Czy sam diagram wyglada wzglednie przyyzwoicie, co nalezaloby jeszcze dodac, co jest zbedne?
2. Czy struktura bazy danych jest prawidlowa?
3. Jakich rodzajow relacji powinienem uzyc w powizszym diagramie?
3. Jak polaczyc tabele osoby z wyksztalcenie, doswiadczenie i znane jezyki w taki sposob, aby kazda osoba mogla byc powiazana z kilkoma doswiadczeniami, wyksztalceniami, jezykami.

Pozdrawiam i obiecuje zachowac aktywnosc na forum!
Lion
Myślę że tabele z adresem i kontaktami możesz scalić z tabelą z danymi osoby skoro to i tak relacja 1-do-1.

Relacje pomiędzy osobą a wykształceniem oraz pomiędzy osobą a doświadczeniem są moim zdaniem źle zaprojektowane. Zrobiłeś tu relację M-do-N, co by sugerowało że jedna osoba może mieć wiele wykształceń oraz że to samo wykształcenie posiada wiele osób. W wykształceniu przechowujesz takie szczegółowe informacje jak daty rozpoczęcia nauki, nazwa szkoły i aktualny status. Nawet zakładając że w systemie będziesz mieć dwie osoby rozpoczynające w tym samym roku studia na tym samym kierunku to i tak jedna z nich może nagle zrezygnować lub zmienić opis co wpłynie na dane tej drugiej osoby. Analogicznie sprawa wygląda w przypadku doświadczenia. W tym miejscu bardziej pasowałoby zrobić relację 1-do-N, czyli jedna osoba ma wiele wykształceń/doświadczeń, plus ewentualnie tabele słownikowe na dane szkół, miejsc pracy itp. także połączone 1-do-N z wykształceniem/doświadczeniem.

Relacje związane z językami wyglądają dobrze.

Zwróciłbym także uwagę na typy pól i ich ograniczenie zgodnie z danymi w ich przechowywanymi. Np. poprawny kod pocztowy raczej nie będzie nigdy miał długości różnej od 6, podobnie jeśli chodzi o numery telefonów - też mają swoje ograniczenia. Natomiast typ int na numer domu i mieszkania jest zbyt restrykcyjny - istnieją numery w formie 12A/33 albo 33/12a.
mieszko
Bardzo dziekuje za odpowiedz! Odswiezam post co godzine z nadzieja, ze ktos sie wypowiedzial...

Cytat(Lion @ 16.01.2017, 22:30:51 ) *
W tym miejscu bardziej pasowałoby zrobić relację 1-do-N, czyli jedna osoba ma wiele wykształceń/doświadczeń, plus ewentualnie tabele słownikowe na dane szkół, miejsc pracy itp. także połączone 1-do-N z wykształceniem/doświadczeniem.


Jakimi polami powinienem wtedy polaczyc ww. tabele? prosze o pomoc w tym zakresie. Jeszcze raz dziekuje za odzew, pozdrawiam smile.gif
Lion
Tabele wykształcenie/doświadczenie powinny mieć klucze obce id_osoby wskazujące na id_osoby w tabeli osoby.
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.