Witam wszystkich!
Zrobiłem schemat bazy danych na zaliczenie, ma to być schemat strony do zamieszczania ogłoszeń o pracę.
Bezrobotny się rejestruje podaje dane, dodatkowo definiuje jedno CV. W jednym CV może zdefiniować kilka doświadczeń zawodowych. Pracodawca się rejestruje po czym może dodać ogłoszenie o pracę, może przeglądać CV różnych osób i proponować im swoje oferty. Mój schemat prezentuje na rysunku bardzo proszę o ocenę.
Unemployed:
- 20 znaków na nazwisko to raczej za mało.
- Płeć typu VARCHAR? WTF?
- stan cywilny, obywatelstwo, dokument, branża to wszystko powinno być w słownikach.
- Adres wydzielony z osoby i również do niego słownik kodów pocztowych, miejscowości.
- PESEL nie powinien być ID, bo po pierwsze nie jest unikalny, a po drugie jest wymysłem wyłącznie polskim. Poza tym jak chcesz zmieścić PESEL do pola INT? :|
Curriculum_vitae:
- Szkoły, certyfikaty, umiejętności, języki powinny być w oddzielnych tabelach, tak aby można było ich podpiąć dowolną liczbę.
CV_dos_zaw:
- Miasto, kraj, stanowisko, to wszystko powinno być w tabelach słownikowych.
- Być może firma też.
Employer
- Co to jest "Ulica_nr"?
- Po co pole Haslo i haslo?
- Miejscowość, branża, ulica może też do słowników.
- Hasło jako VARCHAR? Dlaczego?
- Dlaczego kluczem głównym ma być NIP?
- NIP ma 10 lub 13 znaków, nie 11.
Classifieds (cokolwiek to jest)
- Stanowisko (wraz z opisem), rodzaj umowy powinny być w słownikach.
- Umiejętności, języki, certyfikaty, powinny być w oddzielnych tabelach, tak aby można było podpiąć ich dowolną liczbę.
przepraszam za niezbyt wnikliwą analizę struktury, jednakże od razu nasuwają mi się pewne spostrzeżenia:
- Struktury nie odzwierciedlają opisanego zadania - tj. elementów związanych z podawaniem przez pracodawcę ogłoszeń o pracę lub przyjmowaniem zgłoszeń (CV) pracobiorców - przez co są to oddzielne schematy wykonujące coś innego - dla mnie bez połączeń.
- Nawet jeżeli jest to projekt na zaliczenie powinieneś wiedzieć, czy lub jakie informacje możesz przechowywać w bazie danych i zakres ich zabezpieczenia - jeżeli będzie to obrona pracy, na pewno padnie takie pytanie.
- Nr PESEL proponuję jako vchar, a nie int - jest to dyskusyjne, ale wg mnie dzięki temu łatwiej jest sprawdzać wiarygodność tego numeru odwołując się do pojedynczych znaków, a nie traktować tego jako liczbę.
- Złączenie tabel Curr.._Vitae i Curr..Vitae_dos.. też raczej jest nieporozumieniem - czy kandydat na stanowisko ma przedstawiać historię wszystkich CV?!
- Pola określające płeć, stan cywilny itp. łatwiej jest definiować jako char(1) lub int - w oprogramowaniu po co Ci analizować dłuższe ciągi znaków?!
- Tabelę Curr..Vitae warto by było podzielić na dwie - dzięki czemu nabrałoby sensu podawanie kwalifikacji i ich ocenianie.
- Z doświadczenia proponuję, aby każde z pól w poszczególnych tabelach zostało uzupełnione jakimiś przedrostkami identyfikującymi tabele - nie jest to przy zapytaniach konieczne, ale powoduje, że w złożonych zapytaniach łatwiej będzie odwoływać się do konkretnych pól.
tyle sobie z moich uwag, nie chcę się bawić z niekompletną strukturą :)
Zaskoczyłeś mnie słownikami. Myślałem że zrobię w formularzu pole z wyborem np dwóch płci ale w przypadku kodów czy miejscowości to kiepska opcja dlatego chciałbym żebyś podpowiedział mi coś więcej w tej kwestii.
MiM możesz dokładniej powiedzieć o co Ci chodziło w pkt.1? Co należy zrobić żeby odzwierciedlało zadanie? Z góry wielkie dzięki.
Wojtek napisał(a)
Zaskoczyłeś mnie słownikami. Myślałem że zrobię w formularzu pole z wyborem np dwóch płci ale w przypadku kodów czy miejscowości to kiepska opcja dlatego chciałbym żebyś podpowiedział mi coś więcej w tej kwestii.
Konkretnie co?
Robisz tabelę np. Stan_cywilny:
Id | Nazwa |
---|---|
1 | Panna/kawaler |
2 | Zamężna/zamężny |
3 | Wdowa/wdowiec |
4 | Nie dotyczy |
Potem w tabeli Osoba robisz pole Id_stanu_cywilnego z FK na Stan_cywilny.Id
A jak wtedy chce wyciągnąć powiedzmy imię nazwisko i stan cywilny to jak wygląda konstrukcja selecta?
SELECT O.imie, O.nazwisko, SC.nazwa
FROM Osoby O JOIN Stan_cywilny SC ON O.stan_cywilny_id = SC.Id
dziękuję za zainteresowanie moimi opiniami :)
Twój projekt jest niekompletny :)
ale przecież nikt się nie rodzi od razu :)
to dobrze, ale nie osuwamy sie do produ :)
Dziś postaram się przedstawić to co zrobilem na podstawie waszych uwag.
Pozdrawiam.