数据表设计的一个小小疑问

最近在看别人的项目,发现有的项目将用户表和用户余额表分开来创建

用户 -----> user 表
用户余额 ----> user_balance 表(里面包含了用户id和用户的余额数量)

741824-20160816002632156-637059328.png

但是有的人又将用户余额表和用户表创建为一张表

所以就懵逼了,不知道哪种更好一点??

分开来创建的话不是冗余了???
而且每次查询用户余额的时候先去用户表查询用户ID再去用户余额表查询余额 不是查询了两次 让数据库开销更大吗????

阅读 1.7k
评论
    11 个回答
    • 213

    余额最好是分开 如果把余额写在user表里 事实上隐患很大,而且在进行接口设计和开发的时候也会有很多额外工作量。
    譬如说展示用户个人主页的时候,我们就需要对于公开页面 banlance信息进行移除。

    这里应该要将banlance独立出来,我的做法是这样的,请参考:

    user_account   核心账户 userid,username,password,nickname...
    user_info      账户信息 userid,city,wxopenid,company...
    user_pocket    钱包    userid,cash,points,type...
    user_comment   评论 ...
    user_collect   ...
    user_like      ...
    user_follow    ...

    通过几个拆分反而可以有效控制单个表的空间大小优化查询效率,同时也降低了安全风险,何乐不为
    查询的时候使用联表查询每次 1+1 , 1+2对于mysql来说是很轻松的事情

      相似问题
      推荐文章