假设您正在编写某种Web应用程序。人们可以贡献内容的地方,例如一个简单的照片分享网站。任何人都可以想到一些很好的理由*不*使用面向对象的DBMS来支持网站?
有几个很好的理由你可以想到而不是去面向对象的数据库(例如db4o)?
假设您正在编写某种Web应用程序。人们可以贡献内容的地方,例如一个简单的照片分享网站。任何人都可以想到一些很好的理由*不*使用面向对象的DBMS来支持网站?
有几个很好的理由你可以想到而不是去面向对象的数据库(例如db4o)?
如果您只需要通过对象访问数据,OODBMS会更好。如果您的解决方案需要额外的数据路径(例如临时查询,报告,需要数据访问但无法使用对象的其他应用程序),那么传统的RDBMS系统会更好。
注意:OODBMS在这方面做了很多改进。
我有这个策略。所有的数据对象都将位于一个名为“Model”的独立类库中。包括主要Web项目在内的其他项目将引用此项目。这样,就有一个中心位置来维护模式。 (我可以使用接口等来保持兼容性)。 – Jonathan 2008-10-06 02:49:21
对于临时查询和报告,OODBMS总体上远优于任何外部应用程序(至少Gemstone是) – 2008-11-11 23:06:10
我的大多数客户都有知道如何针对SQL Server编写报告的人(他们知道如何编写SQL查询和如何使用ActiveReports或Crystal Reports等特定设计器以及如何运行和部署)。宝石可能很棒,但这些人都不知道如何使用宝石。 – MusiGenesis 2008-11-11 23:40:37
如果您的应用程序设计真的很重视对象,并且复杂性需要它,我只会推荐使用OODBMS。一张照片共享网站听起来不像OO方面很重,所以我没有看到db4o的重点。
但是,如果你真的只想学习一个宠物项目中使用OODBMS的细节,可以使用它。
另一个很好的理由是相对寿命。 db40是一款非常出色的产品,但它的用户基数很小,并不像SQL Server那样活跃。
当然,我也曾经说过Java没有办法生存。
我不知道你的计划有多大,但是有经验和技能的人可以聘用(或者只是伸出援助之手),这会影响我的决定,也会影响到我的一般知识数据库的所有内容。
Oracle或MySQL有它们的缺陷,但是如果你有问题的可能性是100其他人有同样的问题,并可以告诉你如何解决它。
数据的大小(如果我处理的行数以百万计,我有我所知道的坚持)
报告(在规范化的数据库通常非常困难,在OO糟糕的数据库)
可用性的专业知识/经验(RDBMS显然有更多的追随者)
大量的ETL(大多数人导入和导出的平面文件,除非你得到/发送XML,你说的普通的旧表)
无这些声音像你的项目的障碍
这是一个有点延伸,但要套用乔尔的职位,计划成功。如果你的应用变得非常受欢迎会怎样
例如,如果您将自己的应用程序托管在自己的机器上,但决定转到正式托管站点甚至服务器场,会发生什么情况。他们支持OODB和MySQL的可能性有多大?
我想说的是,如果你正在考虑像db4o这样的东西,他们似乎没有企业支持网站的例子,并且主要用于嵌入式应用程序。
查看我的其他帖子。 (Example websites using db4o)
没有什么技术上的方式在这里,只是采用它似乎。然而,为了提高开发速度,维护和设计的灵活性,OODB是非常无与伦比的。
繁重的报告等,如果需要可以通过我知道db4o的支持
我个人的看法,那里的数据...有报告与关系后端synching完成。
没有OODB将为您的数据提供合适的存储模型以便您的报告应用程序可用。
当你得到的只是一辆踏板车时,需要速度。场景包括数据捕获(例如记录),事件发生后,捕获的数据通常在稍后阶段被处理,并且可能分解成其对象组成部分。
也许你们还需要检查这篇文章:
http://microsoft.apress.com/asptodayarchive/74063/using-an-object-oriented-d
由吉姆·帕特森的 “使用在网站的面向对象数据库”
最好!
对于需要适度数据的复杂应用程序,您无法击败GLASS(宝石,海滨和Smalltalk)。报告绝对是您想要在Smalltalk中执行OO的一件事。
什么吸引我到OODBMS的是易于安装。而不是规划数据库模式,设置数据库,决定使用哪个ORM,设置ORM,等等,我可以编写我的对象并让它们自动保持。 – Jonathan 2008-10-06 02:26:55