저는 Craigslist와 유사한 사이트에서 사용자가 다른 도시에 게시물을 게시하고 판매 할 수있는 사이트 작업을하고 있습니다. 내 사이트와 Craigslist의 한 가지 차이점은 페이지에 나열된 모든 도시를 보유하는 대신 우편 번호로 검색 할 수 있다는 것입니다.데이터베이스 레이아웃 도움말
각 도시의 도시, 주, 위도, 경도 및 우편 번호 정보가 모두 포함 된 ZIP 코드 데이터베이스가 이미 있습니다. 자, 내가 무엇을해야하는지, 도움이 필요한 부분을 다이빙하기 위해서 :
1.) 나는 우편 번호 데이터베이스를 가지고 있지만, 제 사용에는 완벽하게 설정되어 있지 않습니다. 얼마나 많은 다른 테이블을 사용해야합니까 어떻게 내가 그들을 연결해야합니다)
I : 내 데이터베이스 구조를 (예를 설정하는 데 도움이 필요)
2. (나는 http://zips.sourceforge.net/에서 무료로 인터넷 떨어져 그것을 다운로드) PHP와 MySQL을 사용하게 될 것입니다. 지금까지 데이터베이스가 설치 될 수있는 방법에
이 우리의 내 생각 : (. 나는이 비록 작동하는지 확실하지 않다)
시나리오 :
누군가가 홈페이지에 가서 "우편 번호를 입력하십시오."라고 알려줍니다. 예를 들어 그들이 "17241"을 입력하면이 우편 번호는 펜실베이니아에있는 Newville이라는 도시를위한 것입니다. 쿼리는 현재 데이터베이스 설정에서 다음과 같이 보입니다.
SELECT city FROM zip_codes WHERE zip = 17241;
쿼리 결과는 "Newville"입니다. 여기에있는 문제는 사이트의 Newville 섹션에 뭔가를 게시하고 싶을 때입니다. Newville 도시 게시 용으로 전체 테이블 설정을해야합니다. 42,000 개 이상의 도시가 있습니다. 즉, 42,000 개가 넘는 테이블 (각 도시마다 하나씩)을 가져야 만한다는 뜻입니다. 그래서 그렇게해야한다는 것은 정신 나간 것입니다. 내가 생각하고있는 한 가지 방법은 "city_id"이라는 우편 번호 데이터베이스에 각 도시에 할당 된 고유 번호가 될 열을 추가하는 것이 었습니다. 예를 들어 Newville시에는 83의 city_id가 있습니다. 따라서 누군가 Newville시에 와서 목록을 올리면 다른 표가 하나만 필요합니다. 그 다른 하나의 테이블은 다음과 같이 설정 될 것입니다 :
CREATE TABLE postings (
posting_id INT NOT NULL AUTO_INCREMENT,
for_sale LONGTEXT NULL,
for_sale_date DATETIME NULL,
for_sale_city_id INT NULL,
jobs LONGTEXT NULL,
jobs_date DATETIME NULL,
jobs_city_id INT NULL,
PRIMARY KEY(posting_id)
);
합니다 (for_sale 및 job_ 열 이름은 게시물의 유형의 범주는 사용자가 아래에 나열 할 수 있습니다.이 단지 그 두 가지보다 더 많은 범주 수 있지만 이것은 단지 예입니다됩니다.)
그래서 지금 누군가가 웹 사이트에 제공하고 판매 구매하지 뭔가를 찾을 때, 그들은 예를 들어 자신의 우편 번호, 17241을 입력 할 수 있으며이 실행되는 쿼리 인 경우 :
SELECT city, city_id FROM zip_codes WHERE zip = 17241; //Result: Newville 83
(필자는 PHP를 사용할 예정입니다.
이제 "귀하의 카테고리를 선택하십시오."라고 알리는 메시지가 사용자에게 세션 및 쿠키에 입력되는 우편 번호를 저장합니다.
SELECT posting_id, for_sale, for_sale_date FROM postings WHERE for_sale_city_id = $_SESSION['zip_code'];
윌이 작품 : 그들은 다음 카테고리 "판매 항목"을 선택하면이 실행하고 결과를 정렬하는 쿼리는?
그럼 이제 내 질문에 모두 동의합니까? 나는 그럴 것이라고 확신하지만이 일을 설정하고 뭔가를 간과하고 처음부터 다시 시작해야한다는 것을 깨닫고 싶지 않습니다. 모든 의견과 아이디어가 환영 받고 생각이있는 사람의 말을들을 것입니다. 나는이 목록의 모든 유형에 대한 열의 그룹이없는 것
문제는 아직 걱정하지 마십시오. 먼저 기본 프로토 타입을 만든 다음 기능을 추가하십시오. :) – Konerak