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%)
|
Wyobraźmy sobie, że mamy aplikację biura nieruchomości. Pracownik ma ekran dodawania nowej pozycji i tam między innymi listę wybieraną "typ nieruchomości".
Przy tworzeniu osobnej tabeli dla każdego typu, z góry musiałbyś założyć, która pozycja odpowiada danej tabeli, a listę wybieraną uzupełnić ręcznie w aplikacji. Nie dość, że będzie przy tym dużo zabawy, to w przypdku, gdy pracownik zażyczy sobie dodania kolejnego typu, będziesz musiał powielać żmudne czynności. Nie łatwiej by było, żeby lista wybierana uzupełniała się sama korzystając z danych z tabeli, a przy dodaniu nowego typu wystarczyłoby wykonać tylko jeden INSERT? Łatwiej, dlatego są relacje. TYPE ---------------- id_type PK type_name REALESTATES ---------------- id_rel PK id_type FK - tutaj zdefiniowany jest typ nieruchomości; gdybyś chciał określić typ danej nieruchomości, wykonujesz złączenie tabel (poniżej) id_city FK price surface ...
W samej aplikacji listę wybieraną można zdefiniować jako pętlę wybierającą wszystkie dane z tabeli TYPE. Dla użytkownika widoczna jest kolumna type_name, a dla aplikacji kolumna id_type przekazywana przez np. $_POST. Dla użytkownika, który będzie mógł tylko oglądać aplikację (np. klient biura) też możesz wyrzucić wszystko na ekran za pomocją pętli (np. menu, w którym pozycjami są rodzaje nieruchomości, jeżeli mają być to elementy graficzne, możesz w bazie przypisać ścieżkę grafiki do danego typu nieruchomości), a jego wybór przekazywać do aplikacji przy pomocy $_GET (tylko pole id_type) i potem w aplikacji używać powyższego select-a modyfikując go o wymagane kolumny i dodając przy tym warunek WHERE dla odpowiedniego id_type. |
|
|
|
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
symonides Nie wiem tylko czy wziąłeś pod uwagę, to że różne ... 17.02.2012, 23:03:46
bww Nie wziąłem.
Dodatkowo stworzyłbym tabelki:
PARA... 18.02.2012, 11:30:41
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: 26.12.2025 - 05:44 |