Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> optymalizacja bazy /podzial swiata/
matchor
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.05.2005

Ostrzeżenie: (0%)
-----


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

Ten post edytował matchor 28.07.2006, 15:29:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
matchor
post
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.05.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 23:21