日期:2014-05-17  浏览次数:20460 次

PHP 储存方式以及效率的问题
例如: 用户表:存放慢更新的数据,比如用户名,密码,地区,手机邮箱等  一对一关系

       信息表:存放数据的积分,等级,等 更新比较块的数据  一对一关系

       爱好表:一个用户id 对应多个爱好类型id  一对多

       收藏表 : 一个用户id 对应多个文章id  一对多


       我想把 爱好表,收藏表的 一对多关系变成一对一关系。
      
       比如表中有两个字段,一个是用户的id,一个是文本类型的 字段,用array方式存储
       
       爱好类型id或者文章id

       想问下大家,用这种方法好吗?请根据实际需求帮我解答一下疑惑
        
        

------解决方案--------------------
原方案是可以轻松做到的!

虽说如果没有“爱好”和“收藏”相关联的关系的动能,新方案可行
但也不是可取
数组不能直接放到表中,所以你需要有序列化和反序列化或json编解码的过程
数组中只不过是些id,得到数组后,你还需要再次查询这些id代表什么

况且原方案是双向的 用户->爱好、爱好->用户 都可以查询到
新方案就变成单向的了

再者说无论是序列化或json,都使数据量翻番。从存储角度上看也是不划算的