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

350 阅读2分钟

我最近做了一个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='图集多态表';