请教一下这样一个业务场景

现在有个注册功能,注册的时候根据不同角色身份填写不同的资料,比如有3个角色身份:普通用户   管理员    其他 ,这三个角色都需要填写很多资料,而且角色之间的资料大多数都不相同,这样在数据库(MySQL)应该怎么存储资料信息好点呢?

目前能想到的就是直接在数据表建一个字段,该字段直接保存填写的资料组成的json数据,比如:{"realname":"张三","age":22},还有其他比较好的方法吗?

谢谢大家了

请先 登录 后评论

最佳答案 2017-12-30 11:40

1.公共字段使用同一的User表存储;

2.非公共字段,但是查询条件可能会用到的字段,使用针对不同身份的扩展表保存,比如管理员一张表,普通用户一张表,其他用户一张表,另外再保留一个字段装其它不需要被查询的字段;

3.MongoDB感觉可以满足你的场景,如果数据字段经常变动以及业务经常变化比较大,可以考虑使用MongoDB;

4.最后补充一点,MySQL+MongoDB可以一起使用,MySQL做持久化,MongoDB用来查询和持久化,好处多多。

请先 登录 后评论

其它 1 个回答

Liangchao - PHP

1、建一个表 保存所有用户的 账号,密码,用户类型和其他相同信息。

2、其他不同信息分表实现,可以保存在一张表,也可以几种用户建几个表!

请先 登录 后评论