![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 12.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć, zastanawiam się jak rozwiązać problem relacji między tabelami, miasto, województwo, kraj oraz tabelą ogłoszeń. Chciałbym to zrobić w taki sposób aby wyciągnięcie ogłoszeń z jakiegoś wybranego miasta nie było problematyczne i przekombinowane. Początkowo myślałem o osobne tabeli przechowującej id miasta, województwa, i państwa w osobnej tabeli oraz id tego rekordu w tabeli ogłoszeń, później żeby id ogłoszenia trzymać w tej samej tabeli co id lokalizacji. Wdaje mi się to średnio trafione rozwiązanie. Jak wy byście to rozwiązali? Proszę o propozycje.
Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Kod # Country (kraj) ## name ## symbol (pl) # Province (województwo) ## name (kujawsko-pomorskie) ## country_id # District (powiat) ## name (Toruń) ## province_id # Community (gmina) ## name ## district_id # Town (miejscowość) ## name (Trouń) ## community_id ## has_city_status (czy ma prawa miejskie) Moim zdaniem tak powinna wyglądać struktura. Jeszcze tabele z kodami pocztowymi ![]() # id # field_type (country,province,district,.....) # field_value (konkretna warość) # refference_type (do czego się odnosi, na przykład gmina do powiatu) # refference_id # metadata (jakieś dodatkowe dane, kody iso) Nie wiem na ile ma to sens... Pozdrawiam! Ten post edytował ayeo 24.07.2011, 00:23:30 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 12.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Obawiam, że źle mnie zrozumiałeś, albo ja nieumiejętnie wyjaśniłem
![]() ![]() Chodzi o to, że nie wiem jak najlepiej połączyć lokalizację ogłoszenia z samym ogłoszeniem. Dodatkowa tabela pewnie, tylko tyle, że ja mam kilka koncepcji, ale jakoś żadna mi się nie podoba. Chciałbym to zrobić tak, żeby wyjmowanie ogłoszeń danego miasta, województwa, czy państwa i tego typu rzeczy nie stanowiło problemu. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Nie stanowi. W ogłoszeniu oprócz samego id miasta możesz zapisać id powiaty i województwa. Jak nie chcesz modyfikować tabeli ogłoszeń to osobną z refferencją. Chyba, że dalej nie rozumiem...
edit: ogłoszenie może należeć do wielu miast? lub może nie należeć do miasta w ogóle (należy do całego powiatu)? edit2: 2x masz modele nazwane w liczbie mnogiej, a 2x w liczbie pojedynczej ![]() ![]() Ten post edytował ayeo 24.07.2011, 01:10:03 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 12.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Robione na szybko, żeby zobrazować : ) Nazwy tabel w mnogiej powinny być.
O tym czy ogłoszenie może należeć do wielu miast, województw, czy do żadnego to nie pomyślałem, ale załóżmy że może. Trzymania aż trzech kluczy obcych w tabeli z ogłoszeniami nie widzi mi się i co wtedy gdy nie będzie należeć do miasta, a tylko do województwa, poza tym jest to zależne też od szczegółowości podziału terytorialnego państwa(będzie trzeba edytować tabelę z ogłoszeniami w razie dodania miast i wsi, zamiast np. tylko miast). Chyba jednak najlepsza będzie osobna tabela z id ogłoszenia, no i właśnie jest problem, bo jak mam id miasta to wszystko co nad nim to znam, więc w tej tabeli wystarczą tylko trzy kolumny id, ad_id oraz place_id(czyli np. województwo, miasto) i w razie wielu miejsc dla ogłoszenia dodajemy nowy rekord. Co o tym myślisz? I jeszcze kilka pytań, czy kolumna z id jest potrzebna w takiej tabeli oraz czy brak relacji między tabelą places a countries, provinces, itd. może stanowić jakieś problemy? ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Kod Place # id # country_id # province_id # town_id # street_name (na przykład) Place reprezentuje konkretne miejsce (z ulicą i numerem mieszkania). Do *Oferty* dowiązujesz *Place*. Jeśli nie jest ustawione town_id to należy do województwa całego. Jak nie ma województwa do należy do kraju. Kraju nie może nie być. Dodanie wsi nie jest problemem. Wieś by nie była przypisana więc należałoby do regionu. Jak to ma być wiele-do-wielu to jeszcze tabela referencji jakaś Kod id place_id ad_id Co do wsi to wieś jest miejscowością. Zaproponowany podział wyżej jest pełny (dla Polski). -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 12.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
O dzięki, tak jak mówisz będzie najlepiej. Jeszcze jedno mam pytanie, bo wcześniej wspomniałeś o kodach pocztowych, problemem nie byłaby ich przytłaczająca ilość a to, że na terenie miasta, np. Warszawy, dzielnica ma osobny kod. Czy w bazie miałbym trzymać zamiast miasta Warszawa to Warszawa - Bemowo, Warszawa - Ochota, oraz czy nazwy miast trzymać od razu z kodem w jednej tabeli?
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
To, że do miasta należy wiele kodów to nie jest problem. Do każdego kodu można łatwo pobrać nawet współrzędne geogfraficzne. Problemem jest sytuacja odwrotna. Ten sam kod może dotyczyć kilku gmin/miejscowości jednocześnie. W sensie w niektórych przypadkach nie jest jednoznaczny. Też niestety wiele do wielu. Tabela z kodami (id, postcode,country_id) i tabela z referencjami (id,town_id,postcode_id).
Pozdrawiam! -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 12.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
To teraz pozostaje nic innego jak znaleźć w przyzwoitej formie miasta i kody, i będzie elegancko.
Dzięki wielkie i pozdrawiam. PS: fajnie jest być nocnym markiem ![]() Ten post edytował symonides 24.07.2011, 02:17:00 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 01:52 |