我目前正在开发一个基于Android的项目.在没有了解许多细节的情况下,该软件将在定制的设备上运行.硬件永远不会改变,并且永远都是一样的.这是一个明确的加:)
话虽如此,该项目要求我们在设备上存储负载和数据负载 - 在某些表中超过3米的行.SQLite处理扫描这么多行对我们来说很好,当我们开始进行复杂的连接以带回我们需要的所有相关数据时,问题就出现了.我们已经考虑过对数据库进行非规范化,但是担心会将数据库推到可用的范围之外.
我们正在研究使用面向对象的数据库,比如db4o或NeoDatis.我们希望通过存储对象,我们可以在行级别上删除我们的关系并将它们存储在对象上(就像OOP一样).问题是我们无法找到在Android上运行和使用的这些ODB的任何性能相关基准(至少不是最近的基准).
有没有人对Android上的OODB和/或存储和访问这些大量数据有任何经验?如果是这样,您可以提供的任何建议将不胜感激.
- 编辑
这是我们面临的问题的一个例子.它与我们的应用程序无关(我的NDA说我不能发布任何具体内容),但这个例子很好地代表了这个问题.
想象一下,我们正在构建一个应用程序来监控在任何时候在新泽西收费公路上行驶的每辆车.对于任何给定的汽车,我们需要跟踪汽车制造和模型,汽车中有多少人以及汽车中人员的人口统计数据.所以基本上你最终得到的数据看起来像 -
id | 颜色| make_id | in_toll_lane | MODEL_ID
id | 名称
id | 名字| make_id
id | 年龄| 性别 is_driver | car_id
id | cars_in_line | ideal_cars_in_line | ideal_occupants
这些数据将经常变化.它也会变得相当庞大,因为毫无疑问很多人都会在任何时候驾驶NJ Pike.
根据这些数据,我们需要能够根据需要快速拍摄任何驾驶梭子鱼的人.我们还需要能够快速拍摄所有正在驾驶的男性或收费公路上的所有女性.我们还需要能够按年龄,性别,品牌,模型等进行搜索.
现在想象一下,我们需要弄清楚每辆车应该根据车内人数,理想的乘员数量,已经排队的车辆数量以及应该排队的理想车辆数来进入哪个收费车道.
这是一个非常简单的例子,虽然很能代表我们的问题.
- 结束编辑
提前致谢!
通过从SQL Server 2008切换到Versant OODB,我可以从公司(不仅仅是开发人员)获得哪些好处(如果有的话)?
有关项目和事实的更多信息,以帮助解答(如果您需要更多,请告诉我):
在这个阶段,我无法证明切换是由于以下几点(与db4o最相关,而不是Versant主流OODB):
oracle在处理大型应用程序方面享有良好的声誉,并且可以灵活地扩展到集群环境.为什么每个人都想要NOSQL?
因为nosql db要便宜多少?为什么不开关面向对象的db?