2008-10-06 18 views
10

假设您正在编写某种Web应用程序。人们可以贡献内容的地方,例如一个简单的照片分享网站。任何人都可以想到一些很好的理由*不*使用面向对象的DBMS来支持网站?

有几个很好的理由你可以想到而不是去面向对象的数据库(例如db4o)?

+1

什么吸引我到OODBMS的是易于安装。而不是规划数据库模式,设置数据库,决定使用哪个ORM,设置ORM,等等,我可以编写我的对象并让它们自动保持。 – Jonathan 2008-10-06 02:26:55

回答

7

如果您只需要通过对象访问数据,OODBMS会更好。如果您的解决方案需要额外的数据路径(例如临时查询,报告,需要数据访问但无法使用对象的其他应用程序),那么传统的RDBMS系统会更好。

注意:OODBMS在这方面做了很多改进。

+0

我有这个策略。所有的数据对象都将位于一个名为“Model”的独立类库中。包括主要Web项目在内的其他项目将引用此项目。这样,就有一个中心位置来维护模式。 (我可以使用接口等来保持兼容性)。 – Jonathan 2008-10-06 02:49:21

+0

对于临时查询和报告,OODBMS总体上远优于任何外部应用程序(至少Gemstone是) – 2008-11-11 23:06:10

+1

我的大多数客户都有知道如何针对SQL Server编写报告的人(他们知道如何编写SQL查询和如何使用ActiveReports或Crystal Reports等特定设计器以及如何运行和部署)。宝石可能很棒,但这些人都不知道如何使用宝石。 – MusiGenesis 2008-11-11 23:40:37

2

如果您的应用程序设计真的很重视对象,并且复杂性需要它,我只会推荐使用OODBMS。一张照片共享网站听起来不像OO方面很重,所以我没有看到db4o的重点。

但是,如果你真的只想学习一个宠物项目中使用OODBMS的细节,可以使用它。

1

另一个很好的理由是相对寿命。 db40是一款非常出色的产品,但它的用户基数很小,并不像SQL Server那样活跃。

当然,我也曾经说过Java没有办法生存。

4

我不知道你的计划有多大,但是有经验和技能的人可以聘用(或者只是伸出援助之手),这会影响我的决定,也会影响到我的一般知识数据库的所有内容。

Oracle或MySQL有它们的缺陷,但是如果你有问题的可能性是100其他人有同样的问题,并可以告诉你如何解决它。

1

数据的大小(如果我处理的行数以百万计,我有我所知道的坚持)

报告(在规范化的数据库通常非常困难,在OO糟糕的数据库)

可用性的专业知识/经验(RDBMS显然有更多的追随者)

大量的ETL(大多数人导入和导出的平面文件,除非你得到/发送XML,你说的普通的旧表)

无这些声音像你的项目的障碍

3

这是一个有点延伸,但要套用乔尔的职位,计划成功。如果你的应用变得非常受欢迎会怎样

例如,如果您将自己的应用程序托管在自己的机器上,但决定转到正式托管站点甚至服务器场,会发生什么情况。他们支持OODB和MySQL的可能性有多大?

4

我想说的是,如果你正在考虑像db4o这样的东西,他们似乎没有企业支持网站的例子,并且主要用于嵌入式应用程序。

查看我的其他帖子。 (Example websites using db4o

没有什么技术上的方式在这里,只是采用它似乎。然而,为了提高开发速度,维护和设计的灵活性,OODB是非常无与伦比的。

繁重的报告等,如果需要可以通过我知道db4o的支持

0

我个人的看法,那里的数据...有报告与关系后端synching完成。

没有OODB将为您的数据提供合适的存储模型以便您的报告应用程序可用。

0

当你得到的只是一辆踏板车时,需要速度。场景包括数据捕获(例如记录),事件发生后,捕获的数据通常在稍后阶段被处理,并且可能分解成其对象组成部分。

0

对于需要适度数据的复杂应用程序,您无法击败GLASS(宝石,海滨和Smalltalk)。报告绝对是您想要在Smalltalk中执行OO的一件事。

相关问题