Projektuję bazę danych. Mam gromadzić takie dane jak np. dane klienta, dane sklepu, dane producenta itd. Jednymi z kryteriów wyszukiwania będzie właśnie kod pocztowy i miasto. Czy powinienem zrobić oddzielną tabelę "Miasta" z relacją jeden do wielu z tabelą "KodyPocztowe", czy raczej zrobić takie kolumny w tabelach, które mają mieć jakiś związek z adresami? Województwa zgromadzę w oddzielnej tabeli.
Jak przechowywać kody pocztowe i miasta
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Rzeszów
Można by zrobić tabelę Adresy, która zawierała by kod pocztowy,miasto oraz inne dane adresowe. Klient przecież niekoniecznie musi mieć tylko jeden adres
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5
Chodzi mi raczej o to czy opłaca się robić tabelę z nazwami miast i kodów pocztowych, które będą wykorzystywane przez np. tabelę klienci, producenci, magazyny itd. Czy też raczej do każdej z tych tabel dodawać kolumny do przechowywania adresu. Jak to powinno się robić?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Jeśli jednym z kryteriów ma być adres to wystarczy zrobić na nim indeks, nie trzeba robić nowej tabeli.
Ale zrobienie tabeli słownikowej dla miast i nawet dla ulic w miastach może mieć sens, jesli taka baza miałaby działać bardzo długo. Bo nazwa miasta może się zmienić, tak samo jak nazwa ulicy.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5
Zrobię indeks. Chociaż jeszcze pomyślę nad oddzielną tabelą z nazwami miast kodami i ewentualnie ulicami. Może to też wyeliminować pomyłki podczas dodawania nowego rekordu - literówki itd. kiedy nazwa będzie wybierana z listy.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2794
I co miesiąc będziesz TERYT sprawdzał, by aktualizować słowniki? Bez sensu...
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2794
Bez słowników. Tylko indeksy.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Poznań
- Postów: 295
wszystko zalezy od tego jaka masz strukture danych. Jesli mozesz utrzymac relacyjnosc to nalezy dorobic osobna tabele. Zwiazac to relacja tabela danych - slownik.
Wyszukiwanie po polu tekstowym nawet przy indexach jest bardzo nieciekawe.
Z drugiej strony jesli bedziesz wyszukiwal dane znajac wczesniej identyfikator mista (woj, kodu pocztowego, itp, itp) bedzie to duzo latwiejsze.
W duzej mierze decydowac tutaj powinna logika biznesowa.