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