2010-04-12 3 views
0

지금 난 다음 필드다음 표를 단순화하고 최적화하는 방법은 무엇입니까?

id 
country  
hdate 
religions 
season 
description  
link  
rate 

있는 테이블을 가지고 있고이 테이블에서 데이터를 저장, 내 샘플 데이터는 여기

1 Afghanistan 2008-01-19 Islamic Winter Ashura ashura 2 
2 Afghanistan 2008-03-20 Islamic Winter Mouloud (Birth of the Prophet) mouloud 4 
3 Afghanistan 2008-01-01 Common Winter New Year Day new-year 5 
4 Albania 2008-04-28 Christian Spring Orthodox Easter Monday easter-monday 4 
5 Albania 2008-01-01 Common Winter New Year Day new-year 5 

당신이 데이터 중복이고 그래서 난 볼 수있을 것입니다 테이블을 깨고 상식을 깨기로 결정했습니다.

초안을 만들었지 만 최상의 데이터 구조를 만들기 위해 할 수있는 일을 마무리 할 수 ​​없습니다.

은 내가 celebrated_by 저장 한 테이블 (ID, 휴일, celebrated_by, 종교 시즌 링크 속도)에 하나 개의 테이블

모든 휴일 데이터에 쉼표

로 구분 국가의 ID를 모든 국가를 가져하기로 결정

및 휴일 날짜를 저장하기위한 holidays_dates. (holiday_id, date, year) date는 전체 날짜를 저장하고 연도는 2009,2008 등으로 저장합니다.

이제 특정 국가의 모든 공휴일을 나열하고 해당 국가를 기념하기 위해 같은 공휴일 (공휴일이 표시 될 때) 등.

이 구조가 충분한 지 또는 결함이나 변경 사항이 있는지 알려주십시오.

도와주세요

답변

1

두 개 (또는 세 개)의 테이블이 있어야합니다. 하나는 국가를위한 것이고 하나는 휴일을위한 것입니다. 나는 1 개 이상의 종교가 같은 공휴일을 공유한다면, 종교에 3 분의 1을 더하는 것을 제안 할 것이다. 후자는이를 국가 테이블에 연결하는 외래 키를 가질 수 있습니다.

countries 
================ 
country_id (auto increment) 
name 

religion 
============ 
religion_id (auto increment) 
name 

holidays 
=============== 
holiday_id (auto increment) 
date 
season 
description 
link 
rate 
country_id (FK) 
religion_id (FK) 

쿼리에 조인이 필요한 경우 알려주십시오.

0

country 테이블의 고유 키와 celebrated_by 링크를하면 좋으며 쉽게 처리 할 수 ​​있습니다. 그러나 redundany이 유를 만들 수 중 국가 및 휴일 W/B를 연결하는 다른 테이블 만들 수 있습니다 다음

그렇지 않은 경우 휴일 테이블에있을 것 (country_id을 holiday_id) 필드는 쿼리를 분류하기에 충분하고 중복

을 줄일 수
0

제안 된 구조는 연결을 위해 쉼표로 구분 된 ids 목록을 사용하면 안되는 것을 제외하고는 괜찮습니다. 'celebrated_by'를 fields가있는 별도의 테이블로 만듭니다. country_id, holiday_id

이론적으로 '종교'또는 '계절'에 대한 직접적인 참조를 pocketfullofcheese 제안과 같은 참조 테이블로 바꿀 수도 있지만 실제로는 이익.

+0

예를 들어, 공화국의 날은 많은 국가에서 기념됩니다. 그래서 나는 공화국의 날에 관한 것들을 언급 할 때 그 휴일이있는 나라를 언급하고자합니다. 차례로 나는 테이블 자체에서 단일 국가의 모든 공휴일을 가질 수 있어야하며, 정보 휴가를 표시 할 때 공휴일을 축하하는 모든 국가를 나열 할 수 있어야합니다. 그래서 나는 그 (것)들을 매우 복잡함없이 가져 오기 아주 간단한 원한다. 그게 내 정확한 필요 – Clewon

관련 문제