任务的阶段信息直接存储为JSON格式,这种格式避免了表关联,避免建表,应用层处理也简单的多了。
1. JSON内容为信息性质,而不具备非统计功能;简单讲就是展示,不能用于深度处理;
2. JSON内容不应该是多表需要的;比如一些信息其实是被多表共享的,这就不可以了,因为存在一个更新批量的问题;JSON内容一旦修改/创建其实是要影响多个表,那么慎用JSON;
3. JSON内容应该是依附性比较强,比如阶段信息永远都是依附于任务而存在,如果有逻辑要单独针对“阶段”内容进行处理,或者在表的概念上有需要以“阶段表”做主表的情况下,JSON化慎用,最好是单独处理为一张表。
4. JSON中的字段作为检索条件的慎用,尽管MySql以及MongoDB都支持对于JSON的使用,但是如果数据库服务器还要对JSON进行解析再处理无疑在效率上是有问题的。