将书籍存储在数据库中

时间:2011-01-16 16:21:22

标签: database database-design database-schema

我想创建一个存储书籍(和其他一些文档)的系统。用户将能够登录系统,他们可以在系统中查看所有书籍列表或输入一些搜索字符串并获取包含搜索字符串的书籍列表。我的问题是我不知道如何存储我的书。书籍obv必须是可搜索的,搜索需要返回书籍ID,名称和首选页面。任何更像是围绕搜索词的文本都会是一个很好的额外内容。

可能有助于我帮助我获得最佳答案的一些事实。

  • 数据库不必是免费的。如果SQL Server或Oracle DB对我有帮助而不是我的全部。
  • 书籍约为100(2-600页)
  • 文件约为1000(10-50页)
  • 添加书籍和文档将是一个不经常发生的缓慢过程,因此任何类型的表重新索引都不需要很快。
  • 我还没决定如何搜索文件。我确实需要根据相关性对我的搜索结果进行排名。这可能成为未来另一个问题的来源

3 个答案:

答案 0 :(得分:3)

不要使用RDBMS数据库。 RDBMS适用于存储关系数据。您要存储的数据是一组文档。使用像couchDB或mongoDB这样的文档存储。但是,您必须搜索此数据,最好将此数据编入lucene中,以满足此类需求

答案 1 :(得分:0)

如果您不打算搜索本书的整个文本(也许考虑初始处理来存储唯一字的序列化哈希?):

SQL Server 2008R2有一个新的FILESTREAM系统,它将使用数据库引擎强制执行关系完整性,但会将文件保存在文件系统中。 它是“两全其美”,您不必担心数据库备份计划如何影响您的BLOB

http://msdn.microsoft.com/en-us/library/cc949109(v=sql.100).aspx

答案 2 :(得分:0)

SharePoint Foundation 2010和2013可能是您完全免费使用的完美解决方案。您可以将大量文档存储到不同的文档库,添加和编辑其元数据,并使用标题,作者等元数据甚至书中的文本内容进行搜索。