python - 个人博客数据库设计的问题
问题描述
我需要设计一个个人博客,数据库设计时遇到困难了。我要实现的功能是:普通用户只能评论博客。管理员(就是我)可以登录,发布博客,回复评论。
原本设计的是表有 User, Admin,Post, Comment。但是User和Comment是一对多,Admin和Comment也是一对多。这样就乱掉了。
所以想把User表和Admin表合并成一个表,就叫User,但是管理员是需要有密码字段的,而普通用户不需要,管理员只有一个,普通用户有很多,这样设计就浪费了一个字段。
请大家给我点建议吧,应该如何设计User和Admin表。另外,我想学习一下数据库设计。请大家推荐一下资料。因为我看到很多数据库操作的资料,但是数据库如何设计的呢
问题解答
回答1:用户、角色、功能、三张表分开就好了
用户对应角色、角色对应功能、
角色现在就是普通用户和管理员、那查的时候根据角色关联一下就知道需不需要判断密码了
不同的功能也根据角色分配、在关联表里面加
回答2:只是个人博客而已,User只需要记录自己的登录信息就好,普通用户既然只能评论,那就不需要有登录的功能,普通用户的用户名或者邮箱就记录在comment里面就好啦,post跟comment是一对多的关系,就不需要涉及到跟用户的关系啦
回答3:看你的描述,你纠结的一点是数据库里会因为普通用户不需要password而管理员需要password,而管理员只有你一个~~我个人想到的方式就是数据库存储和设计按照一楼“liujijans”的方式,不过可以在库里不用加上password,然后admin的这个password可以设置为动态的,比如一个你预先设置的前缀+当天日期,这样的密码安全度还是有的,然后也比较好记,不需要在代码里刻意的设置。关于权限系统、用户中心还有实际的业务可以分开来设计,解耦之后不但灵活,而且业务模块化比较有架构性,哈哈,装逼范儿十足。
相关文章:
1. docker-compose 为何找不到配置文件?2. 在mac下出现了两个docker环境3. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?4. macos - mac下docker如何设置代理5. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!6. angular.js - angular内容过长展开收起效果7. PHP中的$this代表当前的类还是方法?8. objective-c - iOS开发支付宝和微信支付完成为什么跳转到了之前开发的一个app?9. dockerfile - [docker build image失败- npm install]10. java - 我用Tomcat访问SQL server数据库时,出现以下错误,该怎么解决?