Cześć,
Od kilku dni próbuję nauczyć się relacyjnych baz danych. Takie książkowe przykłady są proste (przynajmniej kiedy wszystko jest opisane), jednak gdy próbuję stworzyć własną bazę, to nie wiem jak się za to zabrać.
Dla celów edukacyjnych wymyśliłem bazę aplikacji do zarządzania nieruchomościami.
Czy moglibyście mi pomóc i rozpisać (zgodnie z postaciami normalnymi) tabele jakie będę potrzebował? Zgodnie z instrukcją w książce, podaję listę pytań, jakie muszę sobie zadać, by dobrze zaprojektować bazę danych. Takie oto wymyśliłem:
1. Jakie są dane kontaktowe potencjalnego klienta A zainteresowanego nieruchomością Z?
2. Które nieruchomości interesują potencjalnego klienta A?
3. Które nieruchomości wynajmuje klient B?
4. Które nieruchomości cieszą się największym zainteresowaniem?
5. Którzy potencjalni klienci są zainteresowani nieruchomością Z?
6. Jakie są dane kontaktowe klienta wynajmującego nieruchomość Z?
7. Za ile wynajmowany jest lokal Z?
8. Które nieruchomości były proponowane podczas rozmowy potencjalnemu klientowi B?
9. Po jakich cenach nieruchomości były proponowane klientowi B?
10. W jaki sposób nieruchomość Z została nabyta? (do wyboru: oferta bezpośrednia, aukcja komornicza, agencja nieruchomości)
Fajnie by było rozpisać te tabele w ten spobób:
Klienci (IdKlienta, NazwaFirmy, Imię, Nazwisko, Adres, Miasto, KodPocztowy)
zaznacząc boldem klucze podstawowe a kursywą klucze obce.
Czytałem, że dobrym zwyczajem jest tworzyć tabele słownikowe, gdzie będą zamieszczone np. sposoby nabycia nieruchomości.
W książce do PHP i MySQL przeczytałem jeszcze, że nie warto tworzyć kolumn, które będą częściowo puste, gdyż nie każdy rekord będzie posiadał daną wartość, np. opinia o nieruchomości. Zamiast tego powinno się utworzyć dodatkową tabelę i do niej się odwoływać.
Dla ułatwienia możemy przyjąć, że każda nieruchomość będzie miała nadany w realnym świecie, niepowtarzalny identyfikator.
Zdaję sobie sprawę, że proszę o niemało, ale być może dla profesjonalistów to nie więcej niż kilka minut, a ja siedzę nad tym trzeci dzień i nie jestem pewien czy dobrze projektuję.