本人并非专业,开发经验也不太足,有一次在弄一个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 来处理的话,还真是个不错的选择。
无所谓好与不好,合适就是好的。