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. html5 - 百度Ueditor代码高亮和代码段滚动条冲突是怎么回事?2. javascript - vue 数据更新了。但是dom没有更新,,,,,如图3. debian - docker依赖的aufs-tools源码哪里可以找到啊?4. javascript - 读取页面源码,页面中所有的换行都被当成<br/>读取出来 了,,求解应该怎么让它被正确的解析5. javascript - 关于一段 for 循环代码执行顺序的问题6. javascript - 静态页面引公共头尾文件,js怎么写吖?7. docker api 开发的端口怎么获取?8. java - 3个dao的数据根据请求参数选择一个映射到一个url上,怎么写比较好?9. java - 为什么要将Runnable接口的子类对象传递给Thread的构造函数?10. javascript - HTML 原生js怎么控制table根据0,1值来显示或者隐藏