用mysql实现一个简单的论坛后台

一个简单的论坛后台,开发环境是CentOS 7.2/C++,数据库使用MySQL,主要逻辑都放到MySQL里。

环境搭建

安装mysql server

在 页面,选择“Red Hat Enterprise Linux / Oracle Linux”和“Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)”后,下载RPM Bundle。 然后基本依照 安装即可。

安装mysql connector

从 页面,下载 ysql-connector-c+±8.0.23-1.el7.x86_64.rpm mysql-connector-c+±jdbc-8.0.23-1.el7.x86_64.rpm mysql-connector-c+±devel-8.0.23-1.el7.x86_64.rpm mysql-connector-c+±debuginfo-8.0.23-1.el7.x86_64.rpm 依次安装即可。

安装mysql Workbench

从 下载Workbench的Windows版本。 安装时如果提示需要visual c++ 2019 redistributable,从 下载安装。 创建一个账号用以远程管理数据库:

CREATE USER root@10.64.16.10 IDENTIFIED BY mysql;
grant all privileges on *.* to root@10.64.16.10;
flush privileges;
ssh -gN -L 33306:localhost:3306 localhost

详细介绍见于 。

表结构

create database xianyou;
create table if not exists xianyou.post(
zoneid int, boardid int, postid int auto_increment,
authorid bigint unsigned, authorname char(8),
quotepostid int, tagid int, anonymity bool,
likenum int default 0, replynum int default 0,
ctime datetime default CURRENT_TIMESTAMP,
avatar text, pics text, content blob, plain text,
primary key(zoneid, boardid, postid),
unique index(postid), index(authorid)
);
create table if not exists xianyou.star(
likerid bigint unsigned, postid int,
likername char(8), ctime datetime default CURRENT_TIMESTAMP,
primary key(likerid, postid),
index(postid, ctime)
);
create table if not exists xianyou.reply(
postid int, replyid int auto_increment,
replyerid bigint unsigned, replyername char(8),
replytoid bigint unsigned, replytoname char(8),
ctime datetime default CURRENT_TIMESTAMP,
content blob,
primary key(postid, replyid),
unique index(replyid)
);
create table if not exists xianyou.notify(
receiver bigint unsigned, sid int auto_increment,
senderid bigint unsigned, sendername char(8),
postid int, boardid int, replyid int,
notifytype int, ctime datetime default CURRENT_TIMESTAMP,
postdigest char(5),
primary key(sid),
index(receiver, sid desc)
);
经验分享 程序员 微信小程序 职场和发展