Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: optymalizacja bazy /podzial swiata/
Forum PHP.pl > Forum > Bazy danych
matchor
baza danych: MySQL

witam mam zamiar przechowywac w bazie danych informacje o podziale swiata

panstwa -> wojewodztwa -> powiaty -> miasta

pytanie jak najlepiej przechowywac to w bazie danych czy stworzyc baze danych ktora przechowuje to wszystko w jednej tabeli:

====================================
TABLE REGIONY
====================================
| id | nazwa_panstwa | wojewodztwo | powiat | miasto |
====================================
" title="Zobacz w manualu php" target="_manual


czy stworzyc kilka tabel powiazanych ze soba :

====================
TABLE PANSTWO (PK: ID_PANSTWA)
====================
| id_panstwa | nazwa_panstwa |
====================

========================
TABLE WOJEWODZTWO (PK: ID_WOJE & ID_PANSTWA | FK: ID_WOJE)
========================
| id_woje | id_panstwa | nazwa woje |
========================

========================
TABLE POWIAT (PK: ID_POWIAT & ID_WOJE | FK: ID_POWIAT)
========================
| id_powiat | id_woje | nazwa powiat |
========================

========================
TBBLE MIASTO (PK: ID_miasto & ID_POWIAT | FK: ID_POWIAT )
========================
| id_miasto | id_powiat | nazwa miasta
========================
" title="Zobacz w manualu php" target="_manual


Nie wiem ktore rozwiazanie jest bardziej optymalne a moze jakies inne lepsze ?

CHodzi mi o to zeby moc potem odnosic sie np do calego wojewodztwa albo calego regionu lub tylko do konkretnego miasta. Wydaje mi sie ze drugie rozwiazanie jest lepsze ale mam problem z kluczami glownymi

bo np tworzac tabele panstwo daje klucz gliowny do id_panstwa

tworzac tabele WOJEWODZTWO kluiczem juz musi byc id_wojewodztwa i id_panstwa bo teoretyczie moglyby istniec dwa takie same wojewodztwa w roznych panstwach

i trzorzac tabele POWIAT kluczem znow jest id_powiatu i id_wojewodztwa z tym ze id_wojewodztwa pobieram z tabeli wojewodztwo gdzie klucz jest zlozony z 2 pol wiec je oba bede musial utworzyc w tabeli powiat ...

nie wiem czy jest sens bo w sumie w POWIAT pojawi sie oprocz id_powiat, id_woje dodatkowo jeszcze id_panstwa ;/

POMOZCIE PROSZE JAK ZAPROJEKTOWAC NAJLEPIEJ TAKA BAZE
SongoQ
2 przyklad lepszy, wyeliminowujesz nadmiarowosc.

Cytat
nie wiem czy jest sens bo w sumie w POWIAT pojawi sie oprocz id_powiat, id_woje dodatkowo jeszcze id_panstwa ;/


Nie rozumiem po co Ci id_panstawa bo dojdziesz relacja do tego. Takie rozwazanie chyba bedzie tylko dobre w polsce, bo w innych krajach troche jest inaczej.
matchor
nie no chcac dla innych panstw bedzie podobnie

country > state -> distinct -> city

zreszta to niewazne moze byc region1 -> region2 -> region3 -> region 4

chodzi mi glownie o to jak to umiescic w bazie

2 sposob tez wydaje mi sie lepszy tylko ze w tabeli 4

bede przechowywal id4 jak i id3 i id2 heh poczatkowo myslalem ze id4i id3 tongue.gif sam juz chyba nie wiem o co mi chodzi ale przez ten gorac nie moge wymyslec nic co normalnie przychodzi mi bez problemow
SongoQ
2 sposob jest ok. Bo do kazdej czesci dojdziesz i danych nie powtarzasz a i tak wybieranie czesog masz operacje max na 4 zbiorach. Sam stosuje taka koncepcje i nigdy mnie nie zawiodla.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.