我已经在互联网上阅读了整个SQL和NoSQL的内容(花了几天时间,所以我有权这样称呼它:),但我仍然觉得我离决定我们的产品将要使用的平台还很远。
我们即将开始设计一套新的产品,主要适合CRM/CMS类别,我想说,几个B2B、B2C、B2E、电子商务以及其他金融和银行应用程序。所以这将是一个复杂的系统,有几十个数据库来解决不同的任务。让我们集中讨论数据库区域。我发现this这篇文章对于企业界的数据库系统特别有趣。所以实际问题是:
最好是使用MySQL这样的老RDBMS(是的,它必须是开源的,这是唯一的要求),还是从MongoDB/CouchDB这样的NoSQL开始(我猜Cassandra对于CRM来说太可扩展了,它不会是一个非常分布式和高度集群的系统)。最多4个强壮的人能完美地完成这项工作????
作为额外的细节,我可以说很多媒体资料和文档都将参与到这个系统中,这对于商店、市场和人力资源系统来说是必须的。存储的消费者主要是网络应用。
将数据库后端分为两部分会更好吗:关系数据的RDBMS和媒体存储的NoSQL?
你的想法,如果你有这样的例子或经验,任何帮助都将非常有助于避免未来的问题。所以提前谢谢你们!
最佳答案:
NoSQL(NeXSQL)数据库是完全兼容的,可以考虑。我将使用其中一个来处理事务性CRM数据。与传统的关系数据库相比,使用这些数据库有很多好处:
性能更好
无模式
有些允许您完全删除ORM并自动使用创建的对象
有些服务器集成了REST/JSON支持,这对您来说很好,因为您将为最终用户使用Web应用程序。
如果你要建立一个客户关系管理,酸性部分是非常重要的。我曾经构建了一个使用NoSQL数据库的CRM系统,并且由于性能的原因,可以添加一些如果使用传统的RMDBMS,我们永远不会考虑的特性。
我喜欢这样的想法:你应该把媒体和文档放到一个cdn中,然后从你的数据库中引用它们。
不过,您的开源需求可能有点像ShowStopper。
我写了一篇关于这个主题的文章,您可以在选择数据库的主题中给出一些建议:
http://www.ulitzer.com/node/2636237