Web applications 有人能想出一些好的理由*不*使用面向对象的DBMS来支持网站吗?

Web applications 有人能想出一些好的理由*不*使用面向对象的DBMS来支持网站吗?,web-applications,db4o,object-oriented-database,Web Applications,Db4o,Object Oriented Database,假设您正在编写某种web应用程序。人们可以贡献内容的东西,例如一个简单的照片分享网站 你能想出多少好的理由不使用面向对象的数据库(例如db4o)?如果你的应用程序设计非常非常面向对象,并且复杂性要求它,我只建议你使用OODBMS。一个照片共享网站听起来在面向对象方面并不重要,所以我不认为使用db4o有什么意义 但是,如果您真的只是想了解在pet项目中使用OODBMS的细节,那么使用OODBMS也不错。如果您只需要通过对象访问数据,OODBMS会更好。如果您的解决方案需要额外的数据路径(例如,即席

假设您正在编写某种web应用程序。人们可以贡献内容的东西,例如一个简单的照片分享网站


你能想出多少好的理由不使用面向对象的数据库(例如db4o)?

如果你的应用程序设计非常非常面向对象,并且复杂性要求它,我只建议你使用OODBMS。一个照片共享网站听起来在面向对象方面并不重要,所以我不认为使用db4o有什么意义


但是,如果您真的只是想了解在pet项目中使用OODBMS的细节,那么使用OODBMS也不错。

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


注:OODBMS在这方面有了很大的改进。

另一个很好的原因是相对长寿。db40是一款出色的产品,但它的用户群很小,不太可能比SQLServer更长寿


当然,我也曾经说过Java是无法生存的。

我不知道你的计划有多大,但雇佣经验丰富的熟练人员(或只是伸出援助之手)将成为我决定的因素,以及关于数据库所有细节的大量知识

Oracle或MySQL都有它们的缺陷,但如果你有问题的话,可能会有100个其他人也有同样的问题,他们可以告诉你如何解决。

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

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

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

大量的ETL(大多数人在平面文件中导入和导出,除非您正在获取/发送XML,否则您所说的是普通的旧表)


所有这些听起来都不像是你项目中的障碍,这有点牵强,但借用乔尔的一篇文章,计划成功。如果你的应用程序变得非常流行怎么办


例如,如果您在自己的计算机上托管应用程序,但决定转到正式的托管站点,甚至服务器场,该怎么办。他们支持OODB和MySQL的可能性有多大

我想说的是,如果您考虑像db4o这样的东西,它们似乎没有为网站供电的企业示例,并且主要用于嵌入式应用程序

请参阅我的另一篇文章。 ()

从技术上讲,这里没有什么问题,只是看起来被采纳了。然而,就开发速度、维护性和设计灵活性而言,OODB是无与伦比的


如果需要,可以通过与关系后端同步来完成繁重的报告等,我知道db4o支持我的个人意见,其中有数据。。。有报道


任何OODB都不会为您的数据提供适当的存储模型,以供您的报告应用程序使用。

当您只有一辆脚踏自行车时,您需要速度。
场景包括数据捕获(如日志记录),在事件发生后,捕获的数据通常会在稍后阶段进行处理,并且可能会分解为其对象组成部分。

也许你们也想看看这篇文章:

Jim Paterson的“在网站中使用OODB”


最好的

对于一个数据需求不大的复杂应用程序,你无法击败GLASS(Gemstone、Seaside和Smalltalk)。在Smalltalk中,报告绝对是OO想要做的事情。

OODBMS吸引我的地方是易于安装。与其计划一个数据库模式,建立数据库,决定使用哪个ORM,建立ORM,诸如此类,我可以只编写我的对象代码,并让它们自动持久化。我有一个策略。所有数据对象都将位于一个名为“Model”的单独类库中。包括主Web项目在内的其他项目将引用此项目。这样,就有一个中心位置来维护模式。(我可以使用接口等来保持兼容性)。对于临时查询和报告,OODBMS通常远远优于任何外部应用程序(至少Gemstone是这样)。我的大多数客户都有知道如何针对SQL Server编写报告的人(他们知道如何编写SQL查询,如何使用ActiveReports或Crystal Reports等特定设计器,以及如何运行和部署).Gemstone可能很棒,但这些人都不知道如何使用它。如果他们足够聪明,能够处理SQL联接,他们学习Smalltalk不会有问题。@Stephan:我想你是在开玩笑吧?如果是db4o,你不需要主机来支持它。它不是服务器!小心中等信任环境……但是如果你有VPS或COOGemstone是一个分布式Smalltalk映像。没有更好的存储模型用于报告。您的声明没有太多意义:要进行报告,您必须查询数据存储。只要您能够做到这一点,您就可以报告其中的内容。不管是关系文件、对象、xml、文档还是平面文件.