Jaki jest "najlepszy" sposób przechowywania adresów międzynarodowych w bazie danych?

Jaki jest " Najlepszy " sposób przechowywania adresów międzynarodowych w bazie danych? Odpowiedź w postaci schematu i wyjaśnienia powodów, dla których zdecydowałeś się normalizować (lub nie) sposób, w jaki to zrobiłeś. Wyjaśnij również, dlaczego wybrałeś typ i długość każdego pola.

Uwaga: to Ty decydujesz, jakie pola uważasz za niezbędne.

Author: animuson, 2008-08-23

6 answers

Zwykły tekst dowolny.

Walidacja wszystkich kodów pocztowych/pocztowych na świecie jest zbyt trudna; stała lista krajów jest zbyt wrażliwa politycznie; obowiązkowy stan/region/inny podział administracyjny jest po prostu nieodpowiedni(zbyt często jestem pytany,w którym hrabstwie mieszkam-kiedy nie, ponieważ Greater London nie jest hrabstwem w ogóle).

Bardziej do rzeczy, to po prostu niepotrzebne. Jest bardzo mało prawdopodobne, aby Twoja aplikacja modelowała adresy w jakikolwiek poważny sposób. Jeśli chcesz adres pocztowy, zapytaj o adres pocztowy. Większość ludzi nie jest tak głupia, aby umieścić coś innego niż adres pocztowy, a jeśli to zrobią, mogą pocałować swój nowo zakupiony przedmiot do widzenia.

Wyjątkiem od tego jest, jeśli robisz coś, co jest naturalnie ograniczone do jednego kraju i tak. W takiej sytuacji należy poprosić o np. parę { kod pocztowy, numer domu}, która wystarczy do zidentyfikowania adresu pocztowego. Wyobrażam sobie, że można osiągnąć podobne rzeczy z rozszerzonym zip kod w USA.

 24
Author: DrPizza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-23 19:04:38

W przeszłości modelowałem formularze, które musiały być międzynarodowe po formularzach adresów wysyłki ups / fedex na ich stronach internetowych(pomyślałem, że jeśli nie wiedzą, jak obsługiwać zamówienie międzynarodowe, wszyscy jesteśmy hosed). Pola, których używają, mogą być użyte jako odniesienie do konfigurowania schematu.

 9
Author: The Brawny Man,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-29 11:24:22

Ogólnie rzecz biorąc, musisz zrozumieć, dlaczego chcesz adres. Czy to do wysyłki / mailingu? Wtedy jest naprawdę tylko jeden wymóg, aby kraj był oddzielony. Pozostałe wiersze są dowolne, do wypełnienia przez użytkownika. Powodem tego jest wspólna strategia przekazywania poczty: każda poczta przychodząca dla obcego kraju jest przekazywana bez patrzenia na inne linie adresowe. Stąd szczegółowe informacje są przetwarzane tylko przez sorter poczty znajdujący się w samym kraju. Jak odbiorca, będą zaznajomieni z konwencjami krajowymi.

(UPS może gromadzić kilka małych krajów europejskich, np.. wszystkie niskie kraje są prawdopodobnie serwowane z Belgii - pomysł nadal istnieje.)

 5
Author: MSalters,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-29 11:31:27

Myślę, że dodanie tekstu kraju / miasta i adresu będzie w porządku. kraj i miasto powinny być oddzielone do celów sprawozdawczości. Menedżerowie Zawsze proszą o tego rodzaju raporty, których się nie spodziewasz, a ja nie preferuję uruchamiania podobnych zapytań przez dużą bazę danych.

 2
Author: Cem Kalyoncu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-18 19:19:53

Aby nie okazywać Facebook ' owi nadmiernego szacunku. Jednak ogólna struktura bazy danych wydaje się być pomijana w wielu aplikacjach internetowych uruchamianych każdego dnia. Oczywiście nie sądzę, że istnieje idealne rozwiązanie, które obejmuje wszystkie potencjalne zmienne ze strukturą adresu bez ciężkiej pracy. To powiedziawszy, w połączeniu z autouzupełnianie Facebook udaje się wziąć Dane wejściowe lokalizacji i wyeliminować większość ich zbędnych wpisów. Robią to organizując swoją bazę danych na tyle dobrze, aby dostarczaj klientowi autouzupełnianie informacji w sposób niski koszt i niski poziom błędów w czasie rzeczywistym, umożliwiając mu mniej więcej Wybór właściwej lokalizacji z istniejącej listy.

Myślę, że najlepszym rozwiązaniem jest dostęp do bazy danych stron trzecich, która zawiera żądany zakres geograficzny i użyć go do początkowo seed informacji o lokalizacji użytkownika. To pozwoli Ci uniknąć groudwork tworzenia własnych. Przy odrobinie szczęścia możesz zmniejszyć obciążenie serwera, zezwalając na nowe użytkownicy, aby otrzymać prawidłowe informacje autouzupełnianie bezpośrednio od dostawcy zewnętrznego. Ostatecznie będziesz mógł wypełnić większość autouzupełniania informacji o lokalizacji, takich jak miasto, kraj itp. z informacji zawartych we własnej bazie danych z danych wejściowych użytkownika.

 2
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-08 22:57:27

Musisz podać nieco więcej szczegółów o tym, jak planujesz wykorzystać dane. Na przykład pola takie jak miasto, stan, Kraj mogą być tekstem w pojedynczej tabeli lub kodami, które są połączone z oddzielną tabelą za pomocą klucza obcego.

Najprostszym byłoby

Address_Line_01 (Required, Non blank) Adres_line_02 Adres_line_03 Landmark Miasto (Wymagane) Pin (Wymagane) Province_District Stan (Wymagane) Kraj (Wymagane)

Wszystkie powyższe mogą być tekstowe / Unicode z odpowiednie długości pola.

Odpowiednio numery telefonów.

 -3
Author: Abhinav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-23 18:50:17