2010-11-18 24 views
2

Hızlanma, motor deplasman, kapılar, vb. Gibi araçlarla ilgili statik bir telefon veritabanından çeşitli istatistikleri sorgular bir Android uygulaması geliştiriyorum. istemcisi. Kullanıcı Arayüzü, motor yer değiştirme ya da maliyet gibi birden çok otomobilden belirli bir özellik için sıralanmış bir bilgi listesi ve belirli bir araca ait tüm özellikleri gösteren başka bir görünüm gösterebilmelidir.Android uygulaması için Sqlite şeması

Benim ilk düşünce, daha doğrusu her özellik için bir sütun içeren bir tablo oluşturmak yerine: (? Ne olduğunu, 1. Normal form)

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

yerine bunu yapın:

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 

Bu veriyor Görünüm, CarID ve AttributeID'nin bir çift sorgulama yapması ve sonuçları göstermesi için verilmiştir. İlk formda, görünüm bir şekilde hangi birimlerin/görünen adın hangi sütunlarla gittiğini bilmek zorunda kalacaktı.

Şema göndermelerini istemenin makul bir yolu mu? Diğer bir deyişle, bu şemadaki verileri sağlama isteğiniz varsa, "ooh brüt!" Diyecek misiniz?

Düzenleme: İlk şema örneği eklendi ve daha fazla açıklık sağladı.

+0

İlgili olmayan bir soru: Çevrimiçi bir veritabanına sahip olmak ve onu sorgulayan bir uygulama yapmak daha iyi olmaz mıydı? Bu şekilde, uygulamayı güncellemeden verileri güncelleyebilirsiniz? – nbarraille

+0

@nbarraille - Bu benim ilk öneriydi, ancak uygulama ile birlikte paketlenmesini istiyorlar, böylece bir veri bağlantısına güvenmek gerekmeyecek. –

+0

Anlam verir. Daha sonra gitmek için en iyi yol (IMO) hem çevrimiçi hem de yerel veri tabanlarıdır ve uygulama ağda kullanılabilirken yerel olanı günceller. – nbarraille

cevap

0

Android ile çalışmadım, ancak otomotiv satış sonrası veri tabanı yayıncılığında çalıştım. Tipik özellik özellik şunlardır submodel varlığa çocuk kayıtları gibi ekli ve böyle bir şey var: a OODBMS yılında

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 

, sadece gibi MODELFEATURES var ve onları submodel düzeyinde geçersiz kılınabilir izin verebilir sınıf mirası.