Skip to main content

Multi-country adress database design

MULTI-COUNTRY ADDRESS DATABASE DESIGN

http://danielcoding.net/multi-country-address-database-design/
https://stackoverflow.com/questions/929684/is-there-common-street-addresses-database-design-for-all-addresses-of-the-world


http://www.upu.int/uploads/tx_sbdownloader/productSheetPostcodesDatabaseEn.pdf

http://www.upu.int/en/resources/postcodes/universal-postcoder-database.html

Google Place Detail API reveal some useful about its data structure design, and sure it very cool.

https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJGzHG3iMT5TQRgQ6MsXnL7xQ&key=GG_KEY_HERE&language=ja

   "result" : {
      "address_components" : [
         {
            "long_name" : "8",
            "short_name" : "8",
            "types" : [ "premise" ]
         },
         {
            "long_name" : "6",
            "short_name" : "6",
            "types" : [ "sublocality_level_4", "sublocality", "political" ]
         },
         {
            "long_name" : "1丁目",
            "short_name" : "1丁目",
            "types" : [ "sublocality_level_3", "sublocality", "political" ]
         },
         {
            "long_name" : "北前",
            "short_name" : "北前",
            "types" : [ "sublocality_level_2", "sublocality", "political" ]
         },
         {
            "long_name" : "北谷町",
            "short_name" : "北谷町",
            "types" : [ "sublocality_level_1", "sublocality", "political" ]
         },
         {
            "long_name" : "北谷町",
            "short_name" : "北谷町",
            "types" : [ "locality", "political" ]
         },
         {
            "long_name" : "中頭郡",
            "short_name" : "中頭郡",
            "types" : [ "administrative_area_level_2", "political" ]
         },
         {
            "long_name" : "沖縄県",
            "short_name" : "沖縄県",
            "types" : [ "administrative_area_level_1", "political" ]
         },
         {
            "long_name" : "日本",
            "short_name" : "JP",
            "types" : [ "country", "political" ]
         },
         {
            "long_name" : "904-0117",
            "short_name" : "904-0117",
            "types" : [ "postal_code" ]
         }
      ],
...

https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJfR8jHkRZwokRgllkzTBqhlM&key=GG_KEY_HERE&language=ja

    "result" : {
      "address_components" : [
         {
            "long_name" : "727",
            "short_name" : "727",
            "types" : [ "street_number" ]
         },
         {
            "long_name" : "Manhattan Avenue",
            "short_name" : "Manhattan Ave",
            "types" : [ "route" ]
         },
         {
            "long_name" : "Greenpoint",
            "short_name" : "Greenpoint",
            "types" : [ "neighborhood", "political" ]
         },
         {
            "long_name" : "Brooklyn",
            "short_name" : "Brooklyn",
            "types" : [ "sublocality_level_1", "sublocality", "political" ]
         },
         {
            "long_name" : "Kings County",
            "short_name" : "Kings County",
            "types" : [ "administrative_area_level_2", "political" ]
         },
         {
            "long_name" : "New York",
            "short_name" : "NY",
            "types" : [ "administrative_area_level_1", "political" ]
         },
         {
            "long_name" : "アメリカ合衆国",
            "short_name" : "US",
            "types" : [ "country", "political" ]
         },
         {
            "long_name" : "11222",
            "short_name" : "11222",
            "types" : [ "postal_code" ]
         }
      ],
...

address_components data contain a list of address properties, each have same structure:
{
  long_name:  => string
  short_name: => string
  types: [] => array/list
}

This is a clever design.
And one of another params is "lang=ja", so long_name property have been translated to language:
ie. US => "アメリカ合衆国"


Digging in to this lib for finding out how J2ME port to Android. I think It is simple because of both use Java but not sure about this. I have tried (at least have an idea) on using LibGDX to build a wrapper around J2ME and It seem not difficult. The most challenge path is the EXCEPTIONS, it's everywhere. For example, a J2ME game using binary image/photo (binary concat like css sheet) for memory saving... It is may not a special way of working but with me it is not familiar and when port to LibGDX/Android I have to handle it.

https://github.com/nikita36078/J2ME-Loader/blob/master/app/src/main/java/org/microemu/microedition/ImplFactory.java

Oh England as Province (yeah it have Scotland, Wales ... in GB or UK?)
GB           | イギリス              | SE1 9AF     |         | NULL     | England               | Greater London

This post mentioned about country_code used in ID (key),
https://stackoverflow.com/questions/3455297/mysql-using-string-as-primary-key
I am confused on choose use it or not, for example:
area_id = GB001 mean Great Britain London...
JP47 mean okinawa pref.

MySQL JSON real use case
https://medium.com/aubergine-solutions/working-with-mysql-json-data-type-with-prepared-statements-using-it-in-go-and-resolving-the-15ef14974c48

Comments

Popular posts from this blog

AWS Elasticache Memcached connection

https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/accessing-elasticache.html#access-from-outside-aws http://hourlyapps.blogspot.com/2010/06/examples-of-memcached-commands.html Access memcached https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/GettingStarted.AuthorizeAccess.html Zip include hidden file https://stackoverflow.com/questions/12493206/zip-including-hidden-files phpmemcachedadmin ~ phpMyAdmin or phpPgAdmin ... telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211 stats items stats cachedump 27 100 https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/VPCs.EC.html https://lzone.de/cheat-sheet/memcached VPC ID Security Group ID (sg-...) Cluster: The identifier for the cluster memcached1 Creation Time: The time (UTC) when the cluster was created January 9, 2019 at 11:47:16 AM UTC+7 Configuration Endpoint: The configuration endpoint of the cluster memcached1.ahgofe.cfg.usw1.cache.amazonaws.com:11211 St...

Notes Windows 10 Virtualbox config, PHP Storm Japanese, custom PHP, Apache build, Postgresql

 cmd => Ctrl + Shift + Enter mklink "C:\Users\HauNT\Videos\host3" "C:\Windows\System32\drivers\etc\hosts" https://www.quora.com/How-to-create-a-router-in-php https://serverfault.com/questions/225155/virtualbox-how-to-set-up-networking-so-both-host-and-guest-can-access-internet 1 NAT + 1 host only config https://unix.stackexchange.com/questions/115464/how-to-properly-set-up-2-network-interfaces-in-centos-running-in-virtualbox DEVICE=eth0 TYPE=Ethernet #BOOTPROTO=dhcp BOOTPROTO=none #IPADDR=10.9.11.246 #PREFIX=24 #GATEWAY=10.9.11.1 #IPV4_FAILURE_FATAL=yes #HWADDR=08:00:27:CC:AC:AC ONBOOT=yes NAME="System eth0" [root@localhost www]# cat /etc/sysconfig/network-scripts/ifcfg-eth1 # Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth1 IPADDR=192.168.56.28 <= no eff => auto like DHCP #GATEWAY=192.168.56.1 #BOOTPROTO=dhcp BOOTPROTO=static <= no eff ONBOOT=yes HWADDR=08:00:27:b4:20:10 [root@localhost www]# ...

Rocket.Chat DB schema

_raix_push_notifications avatars.chunks avatars.files instances meteor_accounts_loginServiceConfiguration meteor_oauth_pendingCredentials meteor_oauth_pendingRequestTokens migrations rocketchat__trash rocketchat_cron_history rocketchat_custom_emoji rocketchat_custom_sounds rocketchat_import rocketchat_integration_history rocketchat_integrations rocketchat_livechat_custom_field rocketchat_livechat_department rocketchat_livechat_department_agents rocketchat_livechat_external_message rocketchat_livechat_inquiry rocketchat_livechat_office_hour rocketchat_livechat_page_visited rocketchat_livechat_trigger rocketchat_message rocketchat_oauth_apps rocketchat_oembed_cache rocketchat_permissions rocketchat_raw_imports rocketchat_reports rocketchat_roles rocketchat_room rocketchat_settings rocketchat_smarsh_history rocketchat_statistics rocketchat_subscription rocketchat_uploads system.indexes users usersSessions https://rocket.chat/docs/developer-guides/sc...