Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 12.11.2010 Ostrzeżenie: (0%)
|
Cześć,
mam do zaprojektowania bazę danych, która będzie tyczyła się nieruchomości, czyli np. domy, mieszkania, działki. Każdy z tych typów nieruchomości ma jakąś część danych wspólną, np. kraj, województwo, miasto, cenę, itp. Czyli to by była tabela główna o przykładowej nazwie realestates. Co dalej ? Każdy następny typ to kolejna tabela (czyli osobna na dodatkowe informacje o mieszkaniach, domach, czy działek)? Wydaje mi się to troszkę niewygodne, bo gdy dojdzie kolejny typ, np. magazyny to trzeba dodać kolejną tabelę + oczywiście jakieś zmiany w kodzie. Drugi pomysł to prócz tabeli realestates, tabela details, która będzie przechowywać wszystko to co miało być w tych dodatkowych tabelach (np. kolumna media - tylko działki, piwnica - tylko mieszkania, itd. w jednej tabeli). Dodam, że operacje będą wykonywane na kilku/kilkunastu tysiącach rekordów. Który pomysł jest waszym zdaniem lepszy? Może macie jakieś propozycje? Pozdrawiam |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 3 Dołączył: 14.02.2012 Ostrzeżenie: (0%)
|
Nie wziąłem.
Dodatkowo stworzyłbym tabelki: PARAMETERS ---------------- id_parameters PK param_name --unit (jako wartość np. m2) TYPE_PARAMETERS --------------------- id_parameters FK id_type FK tutaj kluczem głównym będzie złożenie kluczy obcych Do tabelki REALESTATES można dodać kolumny, które będą wspólne dla każdego typu nieruchomości np. cena + kolumnę parametrs (o tym za chwilę), do tabeli PARAMETERS można wpisać wszystkie parametry nieruchomości, które są rózne, a w tabelce TYPE_PARAMETERS będzie znajdować się połączenie tabel PARAMETERS i TYPE co spowoduje, że każdemu rodzajowi nieruchomości będzie można określić oddzielny parametr. W aplikacji np. na ekranie dodawania nowej nieruchomości, wypisałbym wszystkie parametry pasujące do danego typu nieruchomości, a po uzupełnieniu przez użytkownika tworzył tablicę i zapisywał do tabeli REALESTATES (kolumna parameters) korzystając z funkcji serialize(). Ewentualnie stworzyć jeszcze jedną tabele (nazwijmy ją TYPE_PARAM_REALE), która będzie tworzyła relację tabeli REALESTATES i TYPE_PARAMETERS, wtedy funkcja serialize() nie będzie konieczna, bo w tej tabeli dla każdej nieruchomości będzie kilka rekordów z parametrem i jego wartością: TYPE_PARAM_REALE --------------------- id_TYPE_PARAMETERS id_rel value id_TYPE_PARAMETERS i id_rel tworzą klucz główny Realizować można to np. tak: Pracownik wybiera typ nieruchomości 'mieszkanie', które w naszej tabeli TYPE ma id = 1. Wypisujemy mu parametry jakie są dostępne dla tego typu:
Pracownik dodaje nową nieruchomość, uzupełnia odpowiednie pola, a w aplikacji wykonują się dwa INSERTY jeden dodający nieruchomość do tabeli REALESTATES, drugi INSERT do tabeli TYPE_PARAM_REALE (id_TYPE_PARAMETERS wyciągnąłeś zapytaniem powyżej, id_rel można wyciągnąć przez mysql_insert_id(), value to wartość wpisana w formularzu). Może ktoś doświadczony wypowie się jeszcze... |
|
|
|
symonides Projekt bazy danych 15.02.2012, 21:18:57
bww Moim zdaniem najlepiej utworzyć słowniki typów nie... 15.02.2012, 23:27:56
symonides Chodzi Ci o to, że w tabeli realestates mam przykł... 16.02.2012, 01:01:35
bww Chodziło mi mniej więcej o coś takiego (PK - klucz... 16.02.2012, 20:58:52
symonides Wielkie dzięki. Wydaje się to być o wiele bardziej... 16.02.2012, 21:55:15
bww Nie wiem, czy dobrze rozumiem Twoją koncepcję. Chc... 16.02.2012, 23:00:30
symonides No właśnie tak mam od początku i wydaje mi się to ... 17.02.2012, 00:01:50
bww Wyobraźmy sobie, że mamy aplikację biura nieruchom... 17.02.2012, 08:53:17
symonides Nie wiem tylko czy wziąłeś pod uwagę, to że różne ... 17.02.2012, 23:03:46
symonides Wielkie, dzięki. Posiedzę nad tym przez weekend i ... 20.02.2012, 23:36:23
bww Jedna miejscowość może mieć tylko jeden kod poczto... 21.02.2012, 09:13:15
symonides W sumie to może być wiele kodów pocztowych do jedn... 22.02.2012, 00:09:47 
bww Cytat(symonides @ 22.02.2012, 00:09:4... 22.02.2012, 11:10:27
symonides Zgadzam się, że bez projektu ciężko o dobra aplika... 22.02.2012, 17:55:22 ![]() ![]() |
|
Aktualny czas: 1.01.2026 - 12:23 |