在NoSQL运动方面,我是一个完整的菜鸟.我听说过很多关于MongoDB和CouchDB的内容.我知道两者之间存在差异.你建议学习哪些作为进入NoSQL世界的第一步?
使用NoSQL数据库有什么好处?我最近已经阅读了很多关于它们的内容,但是我仍然不确定为什么我要实现它,在什么情况下我想要使用它.
在我工作的地方,我们使用Ruby on Rails来创建后端和前端应用程序.通常,这些应用程序与同一MySQL数据库交互.它适用于大多数数据,但我们有一种情况可以转移到NoSQL环境.
我们有客户,我们的客户拥有我们所谓的"库存" - 其中一个或多个.库存可以包含数千个商品.这是目前通过两个关系数据库表进行,inventories和inventory_items.
当两个不同的库存具有不同的参数时,问题就开始了:
# Inventory item from inventory 1, televisions
{
inventory_id: 1
sku: 12345
name: Samsung LCD 40 inches
model: 582903-4
brand: Samsung
screen_size: 40
type: LCD
price: 999.95
}
# Inventory item from inventory 2, accomodation
{
inventory_id: 2
sku: 48cab23fa
name: New York Hilton
accomodation_type: hotel
star_rating: 5
price_per_night: 395
}
Run Code Online (Sandbox Code Playgroud)
因为我们显然不能使用brand或star_rating作为列名inventory_items,我们的解决方案至今一直使用通用列名,例如text_a,text_b,float_a,int_a,等,并引入第三个表,inventory_schemas.表现在看起来像这样:
# …Run Code Online (Sandbox Code Playgroud) 我有一个在Java堆栈上运行的Web应用程序(Struts 2 + Spring + Hibernate)并且在MySQL中持久存在.我查看了NoSQL数据库,它们比RDBMS更容易推理和使用.这是一个音乐流媒体应用程序,存储艺术家信息,并允许用户保存播放列表.
我想知道切换到NoSQL DB(CouchDB?,MongoDB?,Cassandra?)是否有任何优势(性能?,硬件成本?,简化代码?,可扩展性?).切换到NoSQL数据库会给您带来什么损失?
请指教.