保存在MySQL数据库中的JSON或XML或序列化数组

保存在MySQL数据库中的JSON或XML或序列化数组,mysql,ruby-on-rails,ruby,xml,json,Mysql,Ruby On Rails,Ruby,Xml,Json,网络应用。以json&xml格式从服务获取数据。和来自散列中的内部模块 决定为所有存储的数据选择一种格式 详情: 读多于写 数据低嵌套(“黑色”,“显示”=>large}) User.find(User.id).preferences#=>{“背景”=>“黑色”,“显示”=>large} Rails版本=2.2(要求)封送非常好。比其他任何东西都快。用于数据存储的Reccomend。谢谢我现在就去试试元帅。已经决定远离xml。很高兴能帮上忙。别忘了把这篇专栏做成一篇中篇文章。然后,您只需在列中执

网络应用。以json&xml格式从服务获取数据。和来自散列中的内部模块

决定为所有存储的数据选择一种格式

详情:

  • 读多于写

  • 数据低嵌套(<10)

  • 字符数在1000到100000之间

  • 编程语言-ruby

  • 框架导轨

  • dbmysql


  • 您的建议是什么?

    我将它存储为类似项目的MySQL中的JSON,因为它提供了很大的灵活性。XML也会提供同样的功能,但有点冗长,因为我的应用程序是基于JavaScript的,所以JSON很有用,因为可以跳过解析步骤


    您可能还希望在Rails 3中签出。它允许使用一个模型,该模型提供了从ActiveRecord中获得的所有好处,但不需要存储在数据库中。例如,它对于JSON/XML上的验证非常有用,即使最终它将存储为blob或大文本。

    出于性能原因,我们将大哈希存储为Marshal格式的序列化Ruby对象。您需要一个Blob的列类型。这真的很有效。JSON可以,但我们发现封送/取消封送稍微慢一点。除非您真的需要与第三方的互操作性,否则我不会使用XML/

    我绝对推荐JSON而不是XML

    对于构建或使用API,ActiveModel工作得很好

    对于直接JSON解析,YAJL ruby是一个不错的库:

    在Activerecord中,您可以通过序列化attr轻松地将哈希、数组等存储在文本列中:

    请参见此处的“在文本列中保存数组、哈希和其他不可映射对象”:

    例如:

    class User < ActiveRecord::Base
      serialize :preferences
    end
    
    user = User.create(:preferences => { "background" => "black", "display" => large })
    User.find(user.id).preferences # => { "background" => "black", "display" => large }
    
    class用户{“背景”=>“黑色”,“显示”=>large})
    User.find(User.id).preferences#=>{“背景”=>“黑色”,“显示”=>large}
    
    Rails版本=2.2(要求)封送非常好。比其他任何东西都快。用于数据存储的Reccomend。谢谢我现在就去试试元帅。已经决定远离xml。很高兴能帮上忙。别忘了把这篇专栏做成一篇中篇文章。然后,您只需在列中执行Marshal.dump/Marshal.load即可。我建议使用marshar/blob策略。