2
我正在開發一個Android應用程序,從靜態手機數據庫中查詢有關汽車,如加速度,引擎位移,門等各種統計數據。我需要從客戶。 UI需要能夠顯示來自多輛車的特定屬性的排序信息列表,例如發動機排量或成本,以及顯示特定車輛的所有屬性的另一視圖。Android的應用程序的Sqlite架構
我首先想到的,而不是爲每個屬性的列創建一個表:(?這是什麼,第一個範式)
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來執行幾個查詢並僅顯示結果。在第一種形式下,視圖必須以某種方式知道哪些單位/顯示名稱與哪些列一起。
這是一個合理的方式來請求他們給我的架構?換句話說,如果您有要求提供該架構中的數據,您會說「哦,糟糕!」?
編輯:增加了第一個模式的例子,並提供更多的清晰度。
不相關的問題:有一個在線數據庫並製作一個查詢它的應用程序不是更好嗎?這樣你可以更新數據而不更新應用程序? – nbarraille 2010-11-18 22:40:10
@nbarraille - 這實際上是我的第一個建議,但他們希望它與應用程序捆綁在一起,這樣就不需要依靠數據連接。 – 2010-11-18 22:47:08
有道理。那麼最好的方法是(IMO)既是在線數據庫又是本地數據庫,並且在應用程序運行網絡時更新本地數據庫。 – nbarraille 2010-11-18 23:16:47