我知道有两个著名的以文档为中心的系统: Sharepoint服务器和Lotus Notes。肯定还有其他人。例如,我听说过CouchDB。主要的实现差异是什么,它们是如何影响的:
可用性
检索性能
搜索性能/质量
可扩展性/集成性
如果您可以详细说明为什么要或不愿意将这些文档存储在关系数据库中,并在适当的模式中使用元数据存储来装饰它们,这将是额外的好处。我发现很难相信这些系统与论坛和博客有很大的不同,论坛和博客是基于关系数据库的,上面有业务代码。
额外的好处:为什么Lotus Notes上很难找到文档,有什么原因吗?如果能给我一些建议,我将不胜感激。
发布于 2009-05-28 13:52:20
Lotus Notes将所有数据存储在NSF文件中。NSF文件是Notes文档的容器,Notes文档是非结构化记录。每个文档可以包含任意数量的项,类似于关系数据库的表和列。但是,与关系数据库不同的是,在数据模型级别对文档必须包含的项没有约束,因此每个单独的文档可能包含非常不同的数据。
Notes视图用于查看文档中的数据,通常对具有相似项的文档进行过滤。可以使用Notes代理、页面和更多工具轻松地从NSF中获取数据。
Notes的优势在于它易于通过表单捕获数据,并通过视图、XML、HTML、Java Servlet等输出数据。它通过一个强大的复制系统轻松管理分布式数据。它还因其内置的安全性而备受推崇。
CouchDB是由前Iris/ Lotus /IBM员工Damien Katz创建的,它具有许多相同的优势,而且没有Lotus Notes的开销和成本。
word文档可能会在Lotus Notes世界中造成混乱。PDF、Word文档、Excel文件等文件文档作为非结构化数据的一部分存储在Lotus Notes文档中。
SharePoint将数据存储在SQL server中。它的数据是非常基于列表的,具有在服务器上存储文件文档和维护其中的元信息的额外能力。
SharePoint列表非常类似于扁平表,但与Lotus Notes不同的是,该列表对其数据有约束。
SharePoint数据主要是通过其基于Web的接口收集和公开的,但是也有许多方法可以访问数据,比如SQL、Web服务、SharePoint,甚至直接从SQL server访问(不推荐)。
可用性:对于终端用户来说,两者在这里的排名都很高。SharePoint完全是基于网络的,最终用户只需很少的培训就可以轻松地自己管理SharePoint站点。Lotus Notes需要一个Notes客户机,或者需要构建一个Domino应用程序以通过Web公开。对于开发人员来说,Notes更容易使用,但很古怪,并且使用专有语言- Notes Formula language和LotusScript。对于一些基本的工作流和站点操作,SharePoint根本不需要编码,但要获得严格的控制,您需要成为一名.NET开发人员,并且代码可能非常复杂。
检索性能:对于小型项目,Lotus Notes做得非常好。包含超过10,000个文档的超大型数据库的性能往往会开始下降。SharePoint使用SQL server,因此它可以轻松地处理其数据存储中的大量列表或文件。
搜索性能/质量:两者都有很好的搜索能力,但如果您试图搜索大量文档,SharePoint将胜出。
可扩展性/集成性: SharePoint的可扩展性更强。但是,这两者都可以很容易地与其他使用XML的系统集成。Notes还可以使用Java代理/servlet和Web服务进行集成。SharePoint有自己的Web services API和用于集成的第三方插件。
额外的好处: Lotus Notes目前不像SharePoint那样流行。有文档的关键位置,如www.notes.net和各种开发人员博客。
发布于 2009-05-28 06:34:54
Sharepoint完全按照您说的做。它建立在关系数据库之上,并提供了一些看起来有点像带有web界面的文件系统的东西。这种文档存储主要面向与Office的集成,并且只是Sharepoint的一小部分。
基于文档的数据库系统。就像CouchDB和亚马逊一样,S3是不同的野兽。它们以一种比关系数据库更少的结构化方式存储数据。主要是以密钥-文档对的形式。您可以通过键或通过查询来检索文档,但是因为文档的结构不像关系数据库中的表中的行那样统一,所以查询可能会更加困难。这些数据库并不是要像关系数据库那样使用,它们更倾向于大型web后端等的可扩展性。
Lotus Notes实际上将这两者结合在一起。您可以使用它进行文档管理(和电子邮件等),并且它是建立在它自己的文档数据库之上的。
发布于 2009-05-28 06:28:09
Sharepoint将其数据/列表/文档/任何内容存储在关系数据库(SQL Server,毫不奇怪……)中,以及元数据的“修饰”。根据传言(我自己也没有调查过),数据模型是如此错综复杂,以至于您必须使用提供的C#应用程序接口来处理数据(这可能是好事也可能是坏事,这取决于您的偏好和目标)。
https://stackoverflow.com/questions/919419
复制相似问题