掘金沸点论坛, 我是如何从零到1搭建的

我最近做了一个Midjourney网站,分享一下其中的功能–社区论坛。这个功能是一个精简版的社区论坛,如果有错误的地方,请指正和批评。

系统设计与流程
1、主要参考的网站还是掘金的沸点以及微信朋友圈功能
2、用户可以发布纯文字,图片,以及视频或者话题的帖子;
3、用户可以在帖子上回复纯文字,图片,或者表情包、还可以点赞、收藏,分享;

数据表结构

CREATE TABLE `paltform_posts` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `category_id` bigint unsigned DEFAULT NULL COMMENT '分类Id',
  `content` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '帖子内容',
  `uid` int(11) NOT NULL COMMENT '用户id',
  `status` int(11) DEFAULT '0' COMMENT '状态[0、待审核, 1、审核通过,2、审核失败]',
  `remake` varchar(250) DEFAULT NULL DEFAULT '' COMMENT '备注',
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `index_uid` (`uid`),
  KEY `index_category_id` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户文章表';
CREATE TABLE `paltform_favorites` (
  `uid` int(11) NOT NULL COMMENT '用户id',
  `favoritable_id` bigint unsigned NOT NULL,
  `favoritable_type` varchar(255) NOT NULL DEFAULT '',
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`uid`,`favoritable_id`,`favoritable_type`),
  KEY `favoritable_id_favoritable_type_index` (`favoritable_id`,`favoritable_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户收藏表';
CREATE TABLE `paltform_likes` (
  `uid` int(11) NOT NULL COMMENT '用户id',
  `likable_id` bigint unsigned NOT NULL,
  `likable_type` varchar(255) NOT NULL DEFAULT '',
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`uid`,`likable_id`,`likable_type`),
  KEY `likable_id_likable_type_index` (`likable_id`,`likable_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户点赞表';
CREATE TABLE `paltform_categories` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='分类表';
CREATE TABLE `paltform_tags` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='标签表';
CREATE TABLE `paltform_taggables` (
  `tag_id` int(11) NOT NULL COMMENT '标签id',
  `taggable_id` bigint unsigned NOT NULL,
  `taggable_type` varchar(255) NOT NULL DEFAULT '',
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`tag_id`,`taggable_id`,`taggable_type`),
  KEY `taggable_id_taggable_type_index` (`taggable_id`,`taggable_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='标签多态表';
CREATE TABLE `paltform_comments` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `uid` int(11) NOT NULL COMMENT '用户id',
  `status` int(11) DEFAULT '0' COMMENT '状态[0、待审核, 1、审核通过,2、审核失败]',
  `remake` varchar(250) DEFAULT NULL DEFAULT '' COMMENT '备注',
  `reply_id` int(11) DEFAULT '0' COMMENT '回复id',
  `content` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '回复内容',
  `commentable_id` bigint unsigned NOT NULL,
  `commentable_type` varchar(255) NOT NULL DEFAULT '',
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评论多态表';
CREATE TABLE `paltform_images` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `url` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '回复内容',
  `imageable_id` bigint unsigned NOT NULL,
  `imageable_type` varchar(255) NOT NULL DEFAULT '',
  `created_at` datetime DEFAULT NULL COMMENT '创建时间',
  `updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='图集多态表';

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

这种类型网站不好管理吧,不知道网友会发布些什么内容

1年前 评论

黑的背景版面,一眼看着有种落差感。大多数网站底色都是白或者灰

1年前 评论
SammlHui (楼主) 1年前
ononl (作者) 1年前
SammlHui (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!