2009-09-20 6 views
3

저는 사람들이 도시의 여러 지역 (약 10 개 도시)에 정보를 게시 할 수있는 응용 프로그램을 구축 중입니다. 기존의 (정규화 된) 데이터베이스/데이터 세트에 대해 알고 계십니까? 아니면 처음부터 새로 만들어야합니까? 모든 포인터 제안은 대단히 감사!위치 기반 응용 프로그램

+0

이러한 유형의 정보 나 사물의 위치가있는 기존 데이터베이스를 위해 설계된 데이터베이스 스키마를 찾고 계십니까? 후자의 경우, 어떤 종류의 것을 원하십니까? –

+0

예, db 스키마가 작동합니다. 도시와 도시를 연결하는 스키마를 생각하고 있습니다. 예 : NYC (도심, 중도, 상권, 첼시 등). 나는 우편 번호를 기반으로이 작업을 수행하고 지역 이름에 우편 번호를 매핑할지 궁금합니다 ... 제 신청서는 기본적으로 다른 분야의 비즈니스를 나열합니다 ... 귀하의 답변에 감사드립니다! – berto77

+0

이 사이트가하는 것과 같습니다 : http://www.thrillist.com/list/Boston – berto77

답변

-2

두 정수의 경도와 위도 (내 지리가 맞다면 내가 생각)이 자성 요구 사항이 하나의 속성이 단일 값을 저장하도록 지정하기 때문에이 경우

1

정상화가 다소 문제가로 저장할 수 있습니다 좌표계를 볼 때 상황이 매우 흐릿 해집니다. 몇 가지 옵션이 있습니다. 이들 각각은 완벽하게 표준화되어 있습니다.

별도의 포인트는 (PostgreSQL의 표기) 같은 것 테이블이 줄이 방법 표

:

CREATE TABLE geo_points (
    id bigserial not null unique, 
    x bigint, 
    y bigint, 
    z bigint, 
    primary key (x, y, z) 
); 
이 테이블에 갈 것, 의견이 합류 할 것

기록 geo_points.id에 있습니다.

포인트 유형 접근

다양한 데이터베이스 포인트를 저장하는 유형이있다. 우리는 모든 것이 지상에있다 가정하면 우리는 우리가 할 수있는, 고도를 추적 할 필요가 없습니다

이 방법으로
CREATE TABLE tagged_location (
    id bigserial not null unique, 
    user_id int references users(id), 
    location point, 
    comment text not null, 
    primary key (user_id, location) 
); 

, 포인트 '(134.22222, 94.4444)'처럼 보일 수 있습니다 서로 다른 좌표 시스템은 데이터베이스 관리 시스템에 의해 지원 될 수 있습니다. 이들은 편평한 좌표, 구 좌표 등을 포함 할 수있다. 좌표계를 선택하는 것은 거리 계산과 같은 상황에서 나오는 단위에 영향을 미치기 때문에 매우 중요합니다. 예를 들어 구형 좌표를 사용하는 경우 거리는 일반적으로도 단위로 측정되므로 마일 또는 km로 변환하려면 추가 작업이 필요합니다. 당신은 숫자 배열로 포인트를 나타낼 수

숫자 배열의 접근. 일반적으로 네이티브 포인트 유형이없는 해결 방법입니다. 각 배열은 단일 위치에 대해 2 차원 또는 3 차원 좌표를 나타 내기 때문에 1NF를 만족합니다. 규칙이 중요하기 때문에 배열은 전체적으로 취해 단일 값을 나타냅니다 (즉 집합이나 가방이 아닌 튜플). 이 점을 제외 포인트 유형 위의 방법과 동일합니다 일반적으로 당신은 당신의 자신의 거리 계산을해야하고, 요점은 모두 완벽의 질문을 정규화 이렇게 많은 다른 방법으로 결국 '{134.22222, 94.4444}'

모양을 데이터베이스 디자인은 RDBMS와 유스 케이스에 의해 제약을받습니다. 유스 케이스에 완벽하게 맞는 기성품 디자인을 찾을 수 없을 것입니다.