Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Jedna osoba - wiele wyksztalcen, jak to ugryżć
mieszko
post 16.01.2017, 13:13:18
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.01.2017

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


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!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Lion
post 16.01.2017, 22:30:51
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 14
Dołączył: 23.02.2013

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


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.


--------------------
Go to the top of the page
+Quote Post
mieszko
post 17.01.2017, 00:35:46
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.01.2017

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


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
Go to the top of the page
+Quote Post
Lion
post 17.01.2017, 21:13:47
Post #4





Grupa: Zarejestrowani
Postów: 148
Pomógł: 14
Dołączył: 23.02.2013

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


Tabele wykształcenie/doświadczenie powinny mieć klucze obce id_osoby wskazujące na id_osoby w tabeli osoby.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:12