2010-11-18 6 views
2

나는 가속, 엔진 변위, 문 등과 같은 자동차에 관한 정적 온 - 폰 데이터베이스로부터 다양한 통계를 쿼리하는 안드로이드 애플리케이션을 개발 중이다. 고객. UI는 엔진 변위 또는 비용과 같은 여러 속성의 특정 속성에 대한 정렬 된 정보 목록과 특정 자동차의 모든 속성을 보여주는 다른보기를 표시 할 수 있어야합니다.안드로이드 애플리케이션을위한 Sqlite 스키마

내 첫번째 생각, 오히려 각 속성에 대한 열이있는 테이블을 만드는 대신 (? 무엇이며, 1 정규형)

Cars: 
ID - integer primary key 
Make - text 
Model - text 
HorsePower - Real 
Acceleration - Real 
Doors - INteger 
etc.. 

대신이 작업을 수행 :

Cars 
ID - integer primary key 
Make - text 
Model - text 

CarAttributes: 
ID - integer primary key 
DisplayName - Text (that gets shown as a column header, or for a line) 
Unit - Text (a short unit suffix that gets appended to the value such as mph) 

Values: 
ID - integer primary key 
CarID - foreign key 
CarAttributeID - foreign key 
Value - Real 

이 허용 보기, CarID 및 AttributeID 주어진 몇 가지 쿼리를 수행하고 결과를 표시합니다. 첫 번째 양식에서 뷰는 어떻게하면 단위/표시 이름이 어떤 열과 연결되는지 알 수 있습니다.

스키마를 보내달라고 요청하는 것이 합당한 방법일까요? 즉, 해당 스키마에서 데이터를 제공하라는 요청을받은 경우 "ooh gross!"라고 말하면됩니까?

편집 : 첫 번째 스키마의 예가 추가되었으며 더 명확하게 제공되었습니다.

+0

관련없는 질문 : 온라인 데이터베이스를 가지고 쿼리하는 응용 프로그램을 만드는 것이 더 좋지 않습니까? 그렇게하면 앱을 업데이트하지 않고 데이터를 업데이트 할 수 있습니까? – nbarraille

+0

@nbarraille - 실제로 이것은 내 첫 번째 제안 이었지만 데이터 연결에 의존 할 필요가 없도록 응용 프로그램과 함께 번들로 제공되기를 바랍니다. –

+0

의미가 있습니다. 가장 좋은 방법은 온라인 (IMO)이며 온라인 데이터베이스와 로컬 데이터베이스를 모두 사용할 수 있으며 네트워크를 통해 앱을 실행할 때 로컬 데이터베이스를 업데이트 할 수 있습니다. – nbarraille

답변

0

저는 Android로 일 해본 적이 없지만 자동차 애프터 마켓 데이터베이스 게시에서 일했습니다. 일반적으로 기능 속성이 서브 모델의 엔티티에 자식 레코드로 첨부, 당신은 이런 일이 같습니다 OODBMS에서

MAKERS 
makerid int 
makername varchar 

MODELS (e.g. Honda Accord) 
modelid int  
makerid int 
modelname varchar 

SUBMODEL (e.g. Honda Accord Sedan, Honda Accord Coupe) 
submodelid 
modelid 
submodeldescription 
yearintroduced 

MAJORSYSTEM 
majorsystemid 
majorsystemname varchar 

FEATURE 
featureid int 
featuredesc varchar 
majorsystemid int 

SUBMODELFEATURES 
submodelid int 
year int 
featureid int 

을, 당신은 단지처럼 MODELFEATURES을하고는 서브 모델 수준에서 재정의 할 수 있습니다 클래스 상속.

관련 문제