点赞功能的设计
每一次点赞,需要记录:
(1)谁点的赞;
(2)为哪篇文章(Convention)点的赞;
(3)点赞时间
(4)是否已经取消点赞
点赞记录表
| 列名 | 说明 | 空
| --- | --- | --- |
| id | 主 | not null |
| user_id | 用户id |
| post_id | 被点赞帖子id |
| title| 被点赞帖子标题 |
| url | 被点赞帖子原文地址,不带域名 |
| description | 被点赞帖子的描述 |
| table_name | 被点赞帖子不带前缀 |
| status | 状态:有效或取消 |
|user_nickname|用户昵称|
|avatar|用户头像|
| create_time | 点赞时间 |
这里写了不少关于post文章的字段,用意是少查一个表,虽然增加了冗余,但是这是我们可以接受的
这里我们也增加了关于user的字段,本意是和简书一样,点击点赞数的时候,会有弹窗弹出点赞的人员头像,但是我查看了一下cmf源码,暂时不支持A会员查看B会员个人中心的情况,cmf在Controller里面写死了userid,必须是当前登录人员查看自己的会员中心,作为插件,这就不好办了,只能先留着字段,以后cmf支持了可以用的上,现在用户昵称 头像 字段其实是用不上的
sql语言为
~~~
DROP TABLE IF EXISTS `cmf_plugin_fancy`;
CREATE TABLE IF NOT EXISTS `cmf_plugin_fancy` (
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '用户 id',
`title` varchar(100) NOT NULL DEFAULT '' COMMENT '收藏内容的标题',
`url` varchar(255) CHARACTER SET utf8 DEFAULT '' COMMENT '被点赞帖子原文地址,不带域名',
`description` varchar(500) CHARACTER SET utf8 DEFAULT '' COMMENT '被点赞帖子的描述',
`table_name` varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '被点赞帖子不带前缀',
`post_id` int(10) UNSIGNED DEFAULT '0' COMMENT '被点赞帖子id',
`status` tinyint(2) DEFAULT '0' COMMENT '状态:有效或取消',
`avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '用户头像',
`user_nickname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户昵称',
`create_time` int(10) UNSIGNED DEFAULT '0' COMMENT '点赞时间',
PRIMARY KEY (`id`),
KEY `uid` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户喜欢表';
~~~
值得注意的是model关联的命名问题:
如果你的表名为:cmf_plugin_sy_guestbook
那么你的model名为:PluginSyGuestbookModel
规律是:插件数据表最好加个plugin前缀再加表名,这个类就是对应“表前缀+plugin_demo”表
| 前缀 | 中缀 |表名|
| --- | --- |---|
| cmf | plugin |sy_guestbook|
同理 我们现在的表名为:cmf_plugin_fancy
那么我们的model名字必须为:PluginFancyModel
源码请看百度云
- php套路
- 套路之类结构
- thinkphp分块解析之Collection
- thinkphp基础之collection
- Collection在thinkphp中的运用
- thinkcmf模块分析
- Controller按界面点击顺序排列表
- user模块-Controller分析
- portal模块-Controller分析
- admin模块-Controller分析
- user模块-脑图
- portal模块-脑图
- admin模块-脑图
- cmf公共函数解析-common.php
- thinkcmf点滴记录
- 自定义标签详解
- 插件
- 系统信息插件
- 插件演示插件
- 留言板插件
- 留言板1 建立胚胎
- 留言板1-1 数据库变化
- 留言板1-2 自定义钩子
- 留言板2 连接数据库
- 留言板3 读取后台界面数据
- 留言板4 前端模板
- 留言板5 分离cssjs文件
- 留言板6 验证
- 留言板7 图形验证码
- 留言板8 后台留言列表页
- 留言板9 后记
- 评论插件
- 1 分析数据表
- 2 CommentModel.php
- 3 UserModel.php
- 4 DCommentPlugin.php
- 前端调用代码
- 喜欢插件
- 1 分析
- 2 收藏功能
- 3 插件建模
- 4 数据库设计
- 5 插入一条数据
- 多语言
- thinkphp多语言
- thinkcmf多语言