数据库设计 - o2o项目中,管理员,商户,终端用户应该分开建表还是合并呢
问 题 虽然以上3个都可以建在一张表,好处是登陆的时候只验证一张表 坏处是对于攻击缺乏安全性,第一能想到的就是sql注入,所以打算把管理员和终端用户分开, 但是如果把商户和终端用户分开,那似乎又太繁琐,如果不分开,商户信息和终端用户信息有很多的不同,比如商户有地址,经理名,营业证书号等等,个人有年龄,兴趣爱好,等等。他们唯一相同的字段只有登陆用户可以抽取出来。合并会造成表的臃肿。 所以。商户和用户,有必要合并通过权限控制吗? 解决方案 最好三个用户表全部分开。 首先,用户数量是最多的, 其次,商户数量较多,也有一定的权限分配。 最后,管理员的数量并不多,且管理员涉及后台操作权限等等问题。 还有用户分表和登录验证并没有多大的关联。 登录验证的是帐号和密码,成功后以Session id为登录凭据。 要考虑到以后用户量大的时候,业务切割,比如分库,微服务拆分方便,一定的冗余是需要的。
838 2022-07-19
编程技术问答社区
日志 - 数据库设计中后台管理用户和app前台用户是否应设计在一张表里
问 题 o2o项目中,有以下几种用户类型,前端app用户,后台商户用户,管理员web管理端用户。 首先,分为3个表肯定是不合理。 是否应把app端和web管理端分开建表,譬如,table_admin_users,table_app_users(table_app_users里包含商户user和用户user), 如何分开,那么操作日志,势必要分开,否则必须要规定web用户和app用户不能重复,要不然log表的user用户就不能做到唯一性。 如果不分开,用2张日志表,那么看起来十分的别扭和违反数据库的设计规范。 请教高玩遇到这种情况一般如何设计? 解决方案 这两种场景都是可以的 只有一个user表,使用role,perm表区分用户权限和角色,这个大部分网站都是这样, 这样只需要制作一套登录逻辑,一个cookie、session的用户认证,然后用权限就可以控制用户的行为 分开设计,后台,前台用户区分成多个表,对于需要记录日志的,无需分开,比如结
1656 2022-07-17
编程技术问答社区