用于文档版本控制系统的 mongodb 和 sql
我是一名计算机工程师学生,我的作业基本上很简单,但我想让它变得更有趣:)。基本上,我必须使用 Java 或 .NET 创建一个简单的多用户在线文档版本控制系统。因为我更喜欢 .NET,所以我将使用 ASP.NET 或 Silverlight(尚未决定)。
无论如何,有趣的部分:我想使用 MongoDB 来存储文档(它们几乎可以是任何内容,视频、音频、简单的 MSOffice 文件、纯文本)、它们的每个版本以及相关的元数据(它们所在的库、文件夹) ETC)。我想将其他任何内容,如用户、权限等(规范尚未完成)放入普通的关系数据库中。问题是你对此有何看法?你认为这有意义吗?或者我只是想让整个事情变得复杂化?只使用 mongodb 来处理所有事情或者完全不使用 nosql 会更简单吗?对于这类东西有什么约定吗? :)
顺便提一句。在任何其他情况下,我都会使用一些免费的、经过实战测试的解决方案来进行文档版本控制,但我必须自己设计和实现它,并且我尝试至少有点非常规地做到这一点:)。
感谢您的每一条评论:),感谢任何帮助:) 问候
I'm a computer engineer student and i've got a basically simple assignment but i'd like to make it a little more interesting :). Basically I have to create a simple multiuser, online document versioning system using Java or .NET. Because I'm more a .NET guy I'm gonna use ASP.NET or Silverlight (it's not yet decided).
Anyway the intersting part: I want to use MongoDB to store the documents (they can be virtually anything, video, audio, simple MSOffice files, plain text), each version of them and the related metadata (which library, folder they're in etc). I'd like to put anything else, like users, permissions etc.(the specs are not yet completed) in to an ordinary relational database. The question is what do you think about this? Do you think this makes any sense or I'm just trying to over complicate the whole thing? Would it be simpler to use only mongodb for everything or leave the nosql thingy entirely out of it? Is there any conventions for this kind of stuff? :)
BTW. under any other circumstences I'd use some free, battle tested solution for doc versioning, but I have to design and implement this myself, and I'm trying to do it at least a little unconventionally :).
Thanks for every comment:), any help appreciated:)
Greets
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 Mongoid on Rails 之类的东西,这将是微不足道的。 http://mongoid.org/docs/extras.html 查找版本控制。 ODM 已经为您内置了它。我还没有在 .NET 世界中使用过 Mongo,它一直都是类似 Raven 的东西,所以我不确定它的库是否能像 Mongoid 一样轻松工作。
Mongo 也处理关系数据。您想要规范化的内容(eq 用户记录)可以引用数据库中的其他文档。当然,您想要存储的任何神奇文档也都可以。
If you were using something like Mongoid on Rails, this would be trivial. http://mongoid.org/docs/extras.html Look for Versioning. The ODM has it built in for you. I've yet to use Mongo in the .NET world, it's always been something like Raven, so I'm not sure if the libraries for it easily work like Mongoid does.
Mongo handles relational data as well. Things you want normalized (e.q. user records) can have references to other documents in the DB. And of course what ever magic document you want to store works as well.
非常规地做事通常是发现新方法(更好的方法?)的好方法,所以这是一个好主意。
由于无模式属性,使用 mongodb 也是一个好主意。
使用关系数据库来存储额外信息非常奇怪,并且会增加更多复杂性,但没有任何优势(IMO)
Doing things unconventionnaly is usually a good way to discover new ways (better ways ?) so it's a good idea.
Using mongodb is a good idea too because of the schemaless property.
USing a relationa database for storing extra information is quite weird and will add more complexity without any advantage (IMO)