我真的在寻找一些关于我应该使用哪种类型的数据库的建议。如果我能给一个应用程序的例子,希望你能建议我什么你会认为是正确的方法。
所以,假设我想创建一个床和早餐(B&B)预订系统。所以在传统的rbdms中,我将拥有拥有许多位置的owner类。每个地点都有自己的特色,并且都有一个可用性日历。而且每个地点都有自己的预订等等。
我喜欢MongoDB的想法,你可以有一个有自己特色的位置,有自己的记录的预订等等,因为它们只属于那个位置。但我认为这种细分是例如,每次预订都会有发票,这些记录也属于预订的人等等。为这样一个应用程序构建一个管理区域会是一场噩梦吗?
对于这样一种类型的应用程序,您将采用什么样的数据库。
期待你的建议。
最佳答案
我已经编写了一些混合和匹配关系数据库和非关系数据库的应用程序(mysql、mongo、postgres和riak)。在rails中这样做并不特别困难,我甚至编写了一个库,它可以在不同类型的数据库之间创建关系(因此,您的ripple模型可以“属于:user”,其中user表在mysql中)。
你应该总是让你的需要驱动决定。如果您更愿意将用户保存在关系数据库中,或者尝试将可能未规范化的报告信息推送到mysql表中,那么不要浪费时间把用户硬塞进mongo。分析您存储的实体以及它们之间的关系将推动您的实现。