当前位置: 代码迷 >> Sql Server >> 把大量字段以json格式进出数据库,这种做法好不好?分析一下利弊
  详细解决方案

把大量字段以json格式进出数据库,这种做法好不好?分析一下利弊

热度:37   发布时间:2016-04-24 09:47:55.0
把大量字段以json格式出入数据库,这种做法好不好?分析一下利弊
         本人并非专业,开发经验也不太足,有一次在弄一个user数据表时,需要增加一些字段,又懒得去修改数据,就索性把这些属性封装在一个类中,序列化为json数据,存放在数据库的一个字段中了,后来,发现这么做至少有以下几点好处:
          1. 想增加或减少字段时,不必频繁地去修改数据库,尤其 是使用三层框架,改一个字段要改好多内容的。
          2.在查询相关信息时不必用联合查询,避免使用主外键,(主外键在修改、删除数据时,有时会很麻烦的)
缺点我暂时还没想到,请大虾们帮我想想。 该类的代码我简单地贴出来一些:

    class UserModel
    {

        public string Gender { get; set; }

        public string QQ { get; set; }
        public string phone { get; set; }




        #region 序列化 需要引用System.Web.Extensions
        public string GetJsonString()
        {
            return new JavaScriptSerializer().Serialize(this);
        }
        public static UserModel GetInstanceByJson(string param_strJson)
        {
            if (!string.IsNullOrEmpty(param_strJson))
            { return new JavaScriptSerializer().Deserialize<UserModel>(param_strJson);}
            else
            { return null; }
        } 
        #endregion
    }

------解决思路----------------------
你如果需要以你系列化成JSON的字段作为查询条件或关联条件的时候就会很不方便而且很慢,但是如果没有这种需求情况,只是纯粹的记录为信息的话,有何不可。
------解决思路----------------------
如果你在数据库中进行统计的话,最好还是遵循 3NF 原则, 直接存 json 基本上不符合 1NF 。
如果你的这个数据只是在web 上用 js 来处理的话,还真是个不错的选择。

无所谓好与不好,合适就是好的。
  相关解决方案