Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Relacje między tabelami
Forum PHP.pl > Forum > Bazy danych > MySQL
piraciq
Witam serdecznie.

Mam dwie tabele
1. miasta id nazwa_miasta id_wojewodztwo
2. wojewodztwa id nazwa


I teraz moje pytanie brzmi jak ustawić relacje między tymi tabelami?


Pozdrawiam
toffiak
Wiele do wielu, miasto o jednej nazwie może być w wielu województwach, województwa mogą mieć wiele miast. Czyli należy dodać tabelę pośrednią np: miasta_wojewodztwa.
mortus
@toffiak: To raczej nie przy takiej strukturze tabel. Poza tym nie możemy identyfikować miasta tylko na podstawie jego nazwy, bo mimo iż w dwóch województwach będą dwa miasta o takiej samej nazwie, to nadal są to różne miasta, a zdarzyć się może, że i w tym samym województwie będą miasta o takiej samej nazwie. Relacja wiele do wielu nie ma tutaj za bardzo racji bytu. Bardziej właściwa będzie relacja 1 do wielu (wiele miast w jednym województwie) i do takiej relacji została zaprojektowana baza danych.

EDIT:
Zaznaczę przy tym, że do tabeli miast warto by dodać kolumnę, która rzeczywiście będzie to miasto identyfikować, a w Polsce takim identyfikatorem jest chyba (bo pewien nie jestem) kod pocztowy.
piraciq
Witam

Tu jest problem, że mam już bazę miast ale nie ma w niej kodów pocztowych :/
toffiak
Cytat(mortus @ 3.05.2012, 12:30:19 ) *
@toffiak: To raczej nie przy takiej strukturze tabel. Poza tym nie możemy identyfikować miasta tylko na podstawie jego nazwy, bo mimo iż w dwóch województwach będą dwa miasta o takiej samej nazwie, to nadal są to różne miasta, a zdarzyć się może, że i w tym samym województwie będą miasta o takiej samej nazwie. Relacja wiele do wielu nie ma tutaj za bardzo racji bytu. Bardziej właściwa będzie relacja 1 do wielu (wiele miast w jednym województwie) i do takiej relacji została zaprojektowana baza danych.

EDIT:
Zaznaczę przy tym, że do tabeli miast warto by dodać kolumnę, która rzeczywiście będzie to miasto identyfikować, a w Polsce takim identyfikatorem jest chyba (bo pewien nie jestem) kod pocztowy.


Masz rację, tylko że w strukturze podanej tabeli nie ma informacji o "unikatowości" miasta, relacja 1 do wielu się nie sprawdzi, miasto o tej samej nazwie może być w wielu województwach. Dopóki nie będzie można jednoznacznie zidentyfikować miasta, właśnie po kodzie pocztowym, to relacja wiele do wielu będzie lepszym rozwiązaniem. Chodź wciąż jest to złe rozwiązanie, ponieważ nigdy nie będzie wiadomo czy miasto Warszawa to miasto należące do województwa mazowieckiego, czy to w zupełnie innym województwie.
piraciq
Tylko tak Warszawa ma wiele kodów pocztowych tongue.gif

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.