Database
 sql >> Baza danych >  >> RDS >> Database

Beverly Hills 90210 i ZIP+4:Obsługa adresów w modelach danych

W moim ostatnim poście pisałem o upewnieniu się, że Twój model danych poprawnie obsługuje informacje globalne:między innymi liczby, waluty, numery telefonów, adresy, daty i strefy czasowe. Jednak zdałem sobie sprawę, że wiele przykładowych modeli danych ma dokładnie „samocentryczne” lub „amerocentryczne” podejście, przed którym przestrzegałem.

Jako Amerykanin mieszkający za granicą (od prawie 30 lat) często stwierdzam, że ludzie przyjmują zbyt wiele założeń na temat uniwersalności tego, co wiedzą. Na przykład niektórzy Amerykanie zakładają, że inni automatycznie rozumieją system kodów pocztowych swojego kraju i jego dodatkową wersję ZIP+4. Z mojego doświadczenia wynika, że ​​większość świata nie ma pojęcia, czym jest ZIP+4.

Pomyślałem więc, że dobrze byłoby napisać o bardziej globalnym podejściu do modelowania adresów.

Adresy znane na całym świecie

Weźmy kilka znanych i mniej znanych adresów na całym świecie i stwórzmy model danych, który obsługuje ich przechowywanie.

Zacznę od przemówienia Prezydenta Stanów Zjednoczonych:Biały Dom.

Biały Dom

1600 Pennsylvania Ave NW

Waszyngton, DC 20500

Teraz 1600 jest ogólnie określane jako numer ulicy lub numer domu. To numer domu (budynku) na ulicy. Pennsylvania Avenue to nazwa ulicy. „NW” to skrót od Northwest i odnosi się do części Waszyngtonu, w której znajduje się ten konkretny adres. Co ciekawe, 1600 Pennsylvania Avenue SE to zupełnie inny adres; to budynek mieszkalny.

Waszyngton to zatem nazwa miasta. A DC, czyli Dystrykt Kolumbii, to „stan”; jednak DC jest wyjątkowy wśród stanów amerykańskich. Waszyngton jest stolicą Stanów Zjednoczonych, ale nie jest właściwie nazywany stanem i nie jest zaliczany do 50 stanów amerykańskich. (Istnieje stan Waszyngton, ale znajduje się on na zupełnie przeciwległym wybrzeżu od Waszyngtonu. Może znasz go jako siedzibę Starbucksa, Boeinga i innych znanych firm). Chodzi nam o to, że w amerykańskim systemie pocztowym „DC” funkcjonuje jak każdy inny skrót państwowy.

Teraz ta liczba:20500. W większości krajów będzie to określane jako kod pocztowy lub kod pocztowy; Amerykanie nazywają to kodem pocztowym. Kody ZIP (Zone Improvement Plan) zostały wprowadzone w Stanach Zjednoczonych w 1963 roku. Widzimy, że w przypadku Białego Domu kod pocztowy to 20500.

W 1983 roku US Postal Service chciała być bardziej precyzyjna, więc stworzyła rozszerzony kod ZIP+4. Ten ZIP+4 zawiera pięć cyfr kodu pocztowego, myślnik i cztery dodatkowe cyfry wskazujące określoną lokalizację w kodzie pocztowym. Numer ZIP+4 prezydenta USA to 20500-0001. Numer ZIP+4 Pierwszej Damy (żony prezydenta) to 20500-0002. A ZIP+4 Białego Domu to 20500-0003.

Chociaż ZIP+4 może być dość precyzyjny, rzadko można znaleźć ZIP+4, który jest używany dla jednej osoby. Często odnoszą się do skrytki pocztowej (dla dużej firmy), szeregu skrytek pocztowych lub dzielnicy w mieście.

Beverly Hills 90210

W zależności od wieku możesz znać amerykański serial telewizyjny 90210 lub Beverly Hills 90210 . Ta popularna telenowela dla nastolatków jest kolejnym dobrym przykładem działania amerykańskiego systemu pocztowego. Niektórzy uważają, że jest to dokładny adres dzielnicy, ulicy, a nawet konkretnego domu.

Najpierw zacznijmy od tła. Beverly Hills to miasto w kalifornijskim hrabstwie Los Angeles. Jest domem dla wielu gwiazd Hollywood i ekskluzywnej ulicy handlowej Rodeo Drive (słynącej z filmu Pretty Woman z 1990 roku). ).

https://goo.gl/maps/gqdvgRMNn472

Jeden z kodów pocztowych w Beverly Hills to 90210, ale miasto Beverly Hills używa również innych kodów pocztowych (90209, 90211, 90212 i 90213). Kod 90210 odnosi się do jednej z ekskluzywnych dzielnic Beverly Hills, a zatem do ekskluzywnej dzielnicy w ekskluzywnej części Los Angeles.

Ale kod pocztowy 90210 wykracza poza Beverly Hills. Obejmuje niektóre z sąsiednich wzgórz Hollywood. Znasz wzgórza, na których znajduje się napis „HOLLYWOOD”? To jest w kodzie pocztowym 90210.

https://goo.gl/maps/Fa2t8SQaGj222

Pozostała część tego ZIP, rozciągająca się na północ do Mulholland Drive (uwiecznionego w thrillerze psychologicznym Davida Lyncha z 2001 roku), została pozostawiona jako część wzgórz Los Angeles, gdzie pozostała anonimowa przez dziesięciolecia.

Pałac Buckingham

Pałac Buckingham ma prosty adres, więc jeśli chcesz napisać do królowej Elżbiety, wyślij notatkę na adres:

Pałac Buckingham

Londyn SW1A 1AA, Wielka Brytania

Pod tym adresem znajdujemy nieparzysty rodzaj kodu pocztowego. W Wielkiej Brytanii (plus kraje tworzące Wspólnotę Brytyjską i większość byłych kolonii brytyjskich) kod pocztowy jest alfanumeryczny. Porównaj to z całkowicie numerycznym kodem pocztowym, który można znaleźć w wielu innych krajach, w tym z kodami pocztowymi USA

W Wielkiej Brytanii kod pocztowy zwykle zawiera jedno- lub dwuliterowy „kod miasta” nazwany dla lokalnego miasta lub obszaru Londynu. W naszym przykładzie jest to „SW”, co odnosi się do południowo-zachodniej części Londynu. Po nim następuje jedna lub dwie cyfry oznaczające dzielnicę w tym regionie – „1A”. Następnie jest dowolny kod składający się z jednej cyfry i dwóch liter, czyli w tym przypadku „1AA”.

Numer 10

Premiera Wielkiej Brytanii można znaleźć pod adresem znanym jako „Numer 10”, którego nazwa pochodzi od numeru ulicy w budynku:

ul. Downinga 10

Londyn SW1A 2AA, Wielka Brytania

Podobnie jak Pałac Buckingham, „Numer 10” znajduje się w południowo-zachodniej części Londynu. Kody pocztowe w niektórych miastach w Wielkiej Brytanii mogą nawet pomóc w rozpoznaniu, w której części miasta znajduje się adres.

Pałac Elizejski

Z drugiej strony, generalnie można znaleźć prezydenta Francji pod tym adresem:

55 Rue du Faubourg Saint-Honoré 75008

Paryż, Francja

Ten przykład jest zgodny ze znanym schematem:numer ulicy (55) i nazwa ulicy (Rue du Faubourg Saint-Honoré) są na pierwszym miejscu.

Następnie znajdujemy 5-cyfrowy kod pocztowy. We francuskich kodach pocztowych pierwsze dwie cyfry wskazują, w którym „departamencie” (regionie) znajduje się adres. W przypadku paryskich kodów pocztowych ostatnie trzy cyfry oznaczają „arrondissement” (sąsiedztwo) adresu. Tak więc w tym przypadku kod pocztowy wskazuje sąsiedztwo adresu.

Mniej znane (ale skomplikowane) adresy

Indie

Dość prostych adresów. W niektórych krajach rzadko używa się numerów ulic. Zamiast tego adresy mogą określać, że lokalizacja znajduje się obok znanej witryny. Lub mogą po prostu podać nazwę budynku i okolicę, w której się znajduje.

Oto adres hotelu Hyatt w indyjskim mieście Pune, w stanie Maharahashtra.

Hyatt Pune

W sąsiedztwie Pałacu Aga Khan, Nagar Road, Kalyani Nagar

Pune, Indie, 411006

Tutaj znajdujemy kolejny kod pocztowy, ale w tym przypadku nie jest to ani 4 cyfry, ani 5 cyfr, ani 5+4 cyfr, ani mieszanka cyfr i liter. To 6 cyfr. Indyjski kod pocztowy zaczyna się od kodu regionu, następnie kodu podregionu i kodu reprezentującego okręg sortowania. Nie jest to zbyt przydatna informacja, jeśli próbujesz znaleźć tę lokalizację osobiście!

W tym przypadku nie ma wzmianki o stanie, w którym znajduje się Pune. Jeśli jednak kilka miast ma tę samą nazwę, ale znajduje się w różnych stanach Indii, w adresie można podać stan.

Znajdujemy nazwę ulicy (Nagar Road) i oznaczenie okolicy (Kalyani Nagar), ale nie ma faktycznego numeru ulicy. Możesz chodzić w górę iw dół Nagar Road, szukając tego miejsca. W ten sposób stwierdzamy, że lokalizacja jest określona jako przylegająca do dobrze znanego miejsca – Pałacu Aga Chana.

Japonia

Weźmy przykład z jeszcze jednego hotelu Hyatt, który mogliście zobaczyć w filmie „Zagubione w tłumaczeniu”:

Park Hyatt Tokio

3-7-1-2 Nishi Shinjuku, Shinjuku-Ku

Tokio, Japonia, 163-1055

Mówiąc o rzeczach oczywistych, używam tutaj formatowania zachodniego i tłumaczenia na język angielski, a nie japońskich znaków.

Ponownie w tym adresie można znaleźć elementy dzielnicy, miasta i kodu pocztowego. „Nishi-Shinjuku” (西新宿) to dzielnica biznesowa drapacza chmur w dzielnicy Shinjuku w Tokio.

Na jakiej ulicy znajduje się ten hotel? Z adresu nie masz pojęcia. Nazwy ulic są rzadko używane, a większość japońskich ulic nie ma nawet nazw (z wyjątkiem kilku miast, takich jak Kioto).

I nie próbuj iść ulicą w poszukiwaniu budynków oznaczonych 3-7-1-2. Liczby te odnoszą się do dzielnic, sekcji, podsekcji i konkretnych bloków miejskich (w tym przypadku w obrębie Tokio).

Japoński system adresowy, pisany w stylu zachodnim, zaczyna się od najmniejszej jednostki (zazwyczaj numer domu) i przechodzi do największej. Często w adresie znajdziesz „Chome”, czyli dzielnicę miasta (丁目 chōme).

Dlaczego samodzielne modelowanie adresów?

Jednym z problemów związanych z modelowaniem adresów jest to, że autor tworzy model, który prawidłowo obsługuje tylko jego adres lokalny. Wyjaśniłem to w moim innym poście, więc podsumuję tylko główne problemy:

  • Model danych zaprojektowany dla lokalnych odbiorców często nie akceptuje informacji z innego kraju. Na przykład, jeśli ktoś z Wielkiej Brytanii próbowałby wpisać swój ośmiocyfrowy alfanumeryczny kod pocztowy w pięciocyfrowym, tylko numerycznym amerykańskim polu ZIP, to nie zadziała.
  • Odbiorcy międzynarodowi mogą nie rozumieć ani używać tych samych terminów, formatów i układów, co odbiorcy lokalni.

Więc dlaczego tak się dzieje? Brakuje przewidywania, ale wiąże się to również ze szkoleniem. Jeśli modelarzy danych nie nauczy się myśleć globalnie, prawie zawsze będą myśleć lokalnie. Nie będę omawiał tego tematu – ponownie wspomniałem o tym we wspomnianym powyżej poście – ale w wielu podręcznikach do modelowania baz danych powszechne jest skupienie się na podejściu amerocentrycznym.

Na szczęście myślenie globalne w kategoriach modelowania danych dla adresów międzynarodowych nie jest trudną umiejętnością do zdobycia. Ma to związek z przezornością i elastycznością.

Rozwiązanie:globalne modelowanie adresu

Zrobiłem model danych do przechowywania adresów globalnych.

Istnieją dwa ogólne pola wiersza adresu (AddressLine1 i AddressLine2 Address tabeli), który będzie przechowywać prawie każdy adres. Powinno to zadziałać, niezależnie od tego, czy przechowujemy „10 Downing St”, „w sąsiedztwie Pałacu Aga Khan”, czy „3-7-1-2 Nishi Shinjuku”. Istnieje ryzyko, że dwa pola po 70 znaków mogą być za krótkie dla niektórych adresów. Mimo to 140 znaków powinno wystarczyć w prawie każdej sytuacji.

Użyłem wspólnej konwencji dwóch pól wiersza adresu, dzięki czemu mogę utworzyć AddressLine1 obowiązkowe (nie dopuszczające wartości null) i AddressLine2 opcjonalny (nie dopuszczający wartości null). Ten model wymaga więc niektórych podano informacje adresowe, ale pozwala to na podanie zarówno bardzo krótkiego, jak i bardzo długiego, szczegółowego adresu.

Następnie spójrzmy na kod pocztowy/ZIP. PostCode pole jest elastyczne i nie ma żadnych ograniczeń co do informacji, które mogą być w nim przechowywane. To obsługuje amerykańskie kody pocztowe, amerykańskie ZIP+4, 4-cyfrowe kody pocztowe, 5-cyfrowe kody pocztowe, brytyjskie kody pocztowe (z literami i cyframi) i wiele innych typów kodów pocztowych.

Region pole przechowuje regiony w kraju (tj. stany, prowincje, departamenty itp.), ale to pole może mieć wartość null. Oczywiście globalny model adresu wymaga określenia kraju za pomocą dwuznakowego kodu ISO kraju (Country pole w Address tabeli).




Teraz otwórz model i popraw go. Dlatego w pierwszej kolejności stworzyliśmy model. Może widzisz sposoby na ulepszenie modelu. A może potrzebujesz dostosować go do swoich konkretnych potrzeb. Zachęcamy do zabawy i tworzenia własnych.

Jaki jest Twój adres? Czy pasuje do tego Address projekt stołu? Jeśli nie, daj nam znać! Interesujące byłoby wiedzieć, co należy rozszerzyć, aby obsługiwać Twój adres.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przycinanie tłuszczu dziennika transakcji

  2. Strukturalny język zapytań – znaczenie nauki języka SQL

  3. Jak klasyfikowane są polecenia SQL | UBIQ

  4. Przepisywanie zapytań w celu poprawy wydajności

  5. 30 najważniejszych pytań do wywiadu SQL, które musisz ćwiczyć w 2022 r.