首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库推荐

问数据库推荐
EN

Stack Overflow用户
提问于 2009-04-11 17:54:23
回答 7查看 634关注 0票数 2

我正在写一个CAD (计算机辅助设计)应用程序。我需要用这个产品提供一个3d对象库。这些都是简单的物体,只有三维坐标才能组成,而且不会超过300个。

为此,我正在考虑使用关系数据库。但考虑到我的简单需求,我不想要任何复杂的事情。到目前为止,我倾向于SQLite。它很小,在客户端进程中运行,并且据称速度很快。另外,我是个可怜的人,而且免费。

但是在我承诺使用SQLite之前,我只想询问您的意见,考虑到我的需求,这是否是一个好的选择。此外,在作出决定之前,我是否也应该尝试其他类似的选择?

编辑

我没有在前面提到,上面说的CAD对象,我将交付不会是不变的。我期望用户编辑它们(改变尺寸、颜色等)然后保存回图书馆。我还期望用户添加他们自己新创建的对象。请在你的回答中考虑这一点。

(到目前为止,谢谢你的回答。)

EN

回答 7

Stack Overflow用户

发布于 2009-04-11 17:58:39

真正需要考虑的是你的程序对数据做了什么。关系数据库设计用于处理数据集之间的复杂关系。然而,它们的设计并不是为了执行复杂的计算。

而且,数据量和它的相对简单性告诉我,您可以使用一个平面文件来存储坐标,并在需要时将它们读入内存。通过这种方式,您可以设计您的数据结构,以更密切地反映您将如何使用这些数据,而不是如何存储它。

许多语言提供了一种机制,可以将数据结构写入文件并将它们再读回称为串行化。Python的泡菜就是这样一个库,我相信您可以为您使用的任何语言找到一个库。基本上,只需根据程序如何使用类或数据结构来设计类或数据结构,并使用其中一个序列化库来填充该类或数据结构的实例。

编辑:结构可变的要求对我的回答并没有太大的影响--我仍然认为序列化和反序列化是解决这个问题的最好方法。事实上,用户需要能够修改和保存这些结构,这就需要进行一些规划,以确保文件被完全和正确地更新,但我认为最终您将花费更少的时间和精力在这种方法上,而不是尝试让SQLite或其他嵌入式数据库为您完成这项工作。

数据库最好的唯一情况是,如果您有一个系统,其中多个用户正在与一个中央数据存储库进行交互和更新,对于这种情况,您将查看像MySQL、PostgreSQL或server这样的数据库服务器的速度和并发性。

您还评论说,您将使用C#作为您的语言。.NET支持序列化内建,所以您应该是可以开始了。

票数 3
EN

Stack Overflow用户

发布于 2009-04-11 18:04:50

我建议您考虑使用H2,它确实是轻量级和快速的。

票数 1
EN

Stack Overflow用户

发布于 2009-04-11 18:18:08

当您说您将有一个由300个3D对象组成的库时,我假设您指的是代码中的对象,而不是用户将要创建的模型。

我读到过对象数据库非常适合帮助解决CAD问题,因为它们非常适合于寻找具有复杂模型特征的长参考链。也许像db4o这样的东西在您的上下文中是有用的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/740525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档