2010-07-04 5 views
1

모든 렌더링 엔진에서 브라우저 간 버그를 저장하기위한 스키마를 결정하려고합니다. 여기 렌더링 엔진 및 브라우저 버전에 따라 브라우저 간 버그를 분류하기위한 정규화/스키마?

내가 생각했던 내용은 다음과 같습니다

browser_engines 테이블 :

id name version 
1 gecko 1.5 
2 gecko 1.7 
3 gecko 1.8 
4 gecko 1.9.0 
5 gecko 1.9.1 

browser_versions 테이블 :

id name  version engine_id 
1 firefox 3.0  4 
2 firefox 3.5  5 

browser_bugs 테이블 : 그래서

id name description engine_id 
1 ff bug    4 

내가 뽑아 경우 첫 번째 버그는 gecko 1.9.0에 매핑되므로 html 뷰는 브라우저를 Firefox 3.0으로 변경합니다.

질문 1.1 :이 스키마가 의미가 있습니까? 그것은 충분히 정규화 되었습니까?

질문 1.2 : 버전 열은 어떤 데이터 형식이어야합니까?

답변

1

질문 1.1 :이 스키마가 의미가 있습니까? 그것은 충분히 정규화 되었습니까?

안녕하세요! 그것은 두 가지 질문입니다. ;-)이 스키마는 다음과 같은 몇 가지, 가정

:

  • 모든 브라우저 버전은 하나 개의 브라우저 엔진을 가지고 있습니다.
  • 주어진 브라우저 엔진의 모든 버그는 해당 엔진을 사용하는 모든 브라우저에 영향을 미칩니다. 이 중 하나가 항상 사실이 보장 경우

, 당신은 몇 가지 대다 교차 테이블을해야 할 수도 있습니다.

질문 1.2 : 버전 열은 어떤 데이터 형식이어야합니까?

"4.0 릴리스 후보 1"등을 고려하여 VARCHAR과 관련이 있습니다. 최소한 30의 길이를 허용합니다.

1

브라우저 테이블과 마찬가지로 엔진 테이블 (예 : 도마뱀의 경우 한 행, 엔진 엔진의 경우 FK)을 만듭니다. 이렇게하면 스토리지 요구 사항이 줄어들고 쿼리 속도가 빨라집니다. 나는 또한 개정판 2.5 또는 이전 버전의 모든 버그 ("10.0"< "2.5"- 그래서 그러한 쿼리에는 적합하지 않은 문자열)를 쿼리하기 위해 메이저/마이너/개정 필드에 버전을 저장하는 것을 고려할 것입니다.

관련 문제