출처 : phpschool.com
TEXT로 적어서 알아보기.. 힘든데 링크타고 가주세요.
(첨부파일은 링크쪽에만 있습니다.)
데이터
#우정사업본부
도로명 우편번호 내려받기 : http://www.epost.go.kr/search/zipcode/newAddressDown.jsp
지번 우편번호 내려받기 : http://www.epost.go.kr/search/zipcode/jibunAddressDown.jsp
우편번호 검색 : http://www.epost.go.kr/search/zipcode/search5.jsp
#도로명주소안내 : http://www.juso.go.kr/openIndexPage.do
[대표지번_우정사업본부고시 우편번호 포함] 8월30일 도로명주소 매칭테이블(사용할 기준 데이터) : http://www.juso.go.kr/notice/OpenArchivesDetail.do?mgtSn=116¤tPage=1&searchType=&keyword=¬iceKd=26&type=matching
우편번호 검색: http://www.juso.go.kr/gismap-new/MapIndex.do?value=point_sgg&code=385843.523216403^678137.7785
구조 레이아웃 설명 문서 : http://www.juso.go.kr/notice/OpenArchivesDetail.do?mgtSn=95¤tPage=1&searchType=subject&keyword=%EA%B5%AC%EC%A1%B0¬iceKd=26&type=archives
테이블 생성쿼리
첨부파일 참고
인덱스
HANGDONG 과 ZIPCODE는 인덱스 안잡아도 된다.
둘다 검색에선 안 쓰임.
(zipcode는 테스트 한다고 잡아본거고 HANGDONG은 실수로 잡았네....)
실제 검색에 사용되는 인덱스 필드는
STREET (도로명) : 검색하기 가장 좋다. 하지만 사람들을 자기집 도로명(길이름)을 모르지....
BUILDING (건물명) & MASSDESTINATION(대량배달처) : 둘다 건물명 검색으로 사용
DONG (읍면동) : 지번에서 RI도 잡기는 했지만, RI가 없는 곳이 많아서 DONG을 잡았다. 도시가 클 수록 RI가 없다.
RI (리) : 도시에서는 리가 없어서...
주키 : BUILDINGCODE + ISMOUNTAIN + JIBUN1 + JIBUN2 ,설명 문서에서 잡으라고 해서 잡았지만.. 이걸 검색에서 쓸 일은 없다.(빌딩코드+산여부+지번1(본번)+지번2(부번))
우편번호 검색 제작시 참고사항
개인적으로 시도,시군구,동 까지는 JS로 빼냈다.(시도,시군구는 인덱스 없어서 JS로 전부 SELECT박스 처리)
검색어로 입력 받는 것은
도로명 , 건물번호1(본번),건물번호2(부번)
리 , 지번1(본번) , 지번2(부번)
건물명
위에서 도로명, 리, 건물명은 최소 2자로 처리하면 된다.
건물명은 1자도 있지만, 의미 없는 글자다.(오타같음)
리는 필수값으로 안했다.
리가 없는 주소가 많기 때문에(row의 반정도가 리가 없는 주소)
ZIPCODE_STREET
-------------------
Rows=5,822,406 Blocks=120,002
Empty Blocks=0 Avg Space=0
Chain Count=0 Avg Row Length=142
Avg Space Freelist Blocks=0 Freelist Blocks=0
Sample Size=5,822,406 Last Analyze=2011/10/27
Partitioned=NO
Column Name Nullable Column Type Distinct Buckets
-------------------------------- -------- ------------- ---------- ----------
DONGCODE VARCHAR2(10) 18,634 1
SIDO VARCHAR2(60) 16 16
SIGUNGU VARCHAR2(60) 228 228
DONG VARCHAR2(60) 3,894 254
RI VARCHAR2(60) 6,985 254
ISMOUNTAIN NOT NULL CHAR(1) 2 1
JIBUN1 NOT NULL NUMBER(4) 7,090 1
JIBUN2 NOT NULL NUMBER(4) 2,954 254
STREETCODE VARCHAR2(12) 158,848 1
STREET VARCHAR2(180) 130,920 254
ISUNDER CHAR(1) 2 1
BUILDINGNUM1 VARCHAR2(5) 7,860 254
BUILDINGNUM2 VARCHAR2(5) 582 1
BUILDING VARCHAR2(100) 422,688 254
BUILDINGDETAIL VARCHAR2(220) 38,684 254
BUILDINGCODE NOT NULL VARCHAR2(25) 5,806,080 1
DONGSEQ VARCHAR2(2) 29 1
HANGDONGCODE VARCHAR2(10) 3,504 1
HANGDONG VARCHAR2(60) 3,161 1
ZIPCODE VARCHAR2(6) 27,152 1
ZIPSEQ VARCHAR2(10) 82 1
MASSDESTINATION VARCHAR2(120) 9,101 1
INDEX
-----------------------------------------------------------------------------
ZIPCODE_STREET_BUILDING_IDX : BUILDING
Type=NORMAL, Uniq=No, Distinct=422,688, Rows=1,026,913, Last Analyze=2011/10/27
ZIPCODE_STREET_DONG_IDX : DONG
Type=NORMAL, Uniq=No, Distinct=3,894, Rows=5,750,714, Last Analyze=2011/10/27
ZIPCODE_STREET_HANGDONG_IDX : HANGDONG
Type=NORMAL, Uniq=No, Distinct=3,161, Rows=5,954,002, Last Analyze=2011/10/27
ZIPCODE_STREET_MASSDEST_IDX : MASSDESTINATION
Type=NORMAL, Uniq=No, Distinct=9,101, Rows=5,921,630, Last Analyze=2011/10/27
ZIPCODE_STREET_PK : BUILDINGCODE + ISMOUNTAIN + JIBUN1 + JIBUN2
Type=NORMAL, Uniq=YES, Distinct=5,778,713, Rows=5,778,713, Last Analyze=2011/10/27
ZIPCODE_STREET_RI_IDX : RI
Type=NORMAL, Uniq=No, Distinct=6,985, Rows=3,080,673, Last Analyze=2011/10/27
ZIPCODE_STREET_STREET_IDX : STREET
Type=NORMAL, Uniq=No, Distinct=130,920, Rows=5,617,284, Last Analyze=2011/10/27
ZIPCODE_STREET_ZIPCODE_IDX : ZIPCODE
Type=NORMAL, Uniq=No, Distinct=27,152, Rows=5,785,839, Last Analyze=2011/10/27