新闻发布系统数据库设计

数据库名与表名

设计数据库设计的表

create database webnews;
use webnews;

表与表

表与表之间的关系

表结构与创建表

user

#user
create table user(
userID INT PRIMARY KEY UNIQUE NOT NULL,
userName VARCHAR(20)  NOT NULL,
userPassword VARCHAR(20)  NOT NULL,
sex VARCHAR(10)  NOT NULL,
userEmail VARCHAR(20)  NOT NULL
);

admin

#admin
create table admin(
adminID INT PRIMARY KEY UNIQUE NOT NULL,
adminName VARCHAR(20)  NOT NULL,
adminPassword VARCHAR(20)  NOT NULL
);

roles

#roles
create table roles(
roleID INT PRIMARY KEY UNIQUE NOT NULL,
roleName VARCHAR(20)  NOT NULL
);

news

#news
create table news(
newsID INT PRIMARY KEY UNIQUE NOT NULL,
newsTitle VARCHAR(50)  NOT NULL,
newsContent TEXT  NOT NULL,
newsDate TIMESTAMP ,
newsDesc VARCHAR(50)  NOT NULL,
newsImagePath VARCHAR(50) ,
newsRate INT  NOT NULL,
newsIsCheck BIT  NOT NULL,
newsIsTop BIT  NOT NULL
);

category

#category
create table category(
categoryID INT PRIMARY KEY UNIQUE NOT NULL,
categoryName VARCHAR(20)  NOT NULL,
categoryDesc VARCHAR(50)  NOT NULL
);

comment

#comment
create table comment(
commentID INT PRIMARY KEY UNIQUE NOT NULL,
commentTitle VARCHAR(50)  NOT NULL,
commentContent TEXT  NOT NULL,
commentDate TIMESTAMP 
);

admin_Roles

#admin_Roles
create table admin_Roles(
aRID INT PRIMARY KEY UNIQUE NOT NULL,
adminID INT  NOT NULL,
roleID INT  NOT NULL
);

news_Comment

#news_Comment
create table news_Comment(
nCID INT PRIMARY KEY UNIQUE NOT NULL,
newsID INT  NOT NULL,
commentID INT  NOT NULL
);

user_Comment

#user_Comment
create table user_Comment(
uCID INT PRIMARY KEY UNIQUE NOT NULL,
userID INT  NOT NULL,
commentID INT  NOT NULL
);

设计索引

设计索引

create index index_news_title on news(newsTitle);
create index index_news_date on news(newsDate);
create index index_news_rate on news(newsRate);
create index index_category_name on category(categoryName);
create index index_comment_title on comment(commentTitle);
create index index_comment_date on comment(commentDate);

设计视图

create view news_view
as select c.commentID,c.newsID,n.newsRate,n.newsTitle,n.newsContent,n.newsDate
from news_Comment c,news n
where c.newsID=n.newsID;

设计触发器

#UPDATE触发器
delimiter &&
create trigger update_newsID after update
on news for each row
begin
    update news_Comment set newsID=new.newsID;
end
&&
delimiter ;

#DELETE触发器
delimiter &&
create trigger delete_user after delete
on user for each row
begin
    delete from users_Comment where userID=old.userID;
end
&&
delimiter ;

备注:
BEGIN与END之间的执行语句列表参数表示需要执行的多个语句,不同语句用分号隔开
一般情况下,MySQL默认是以;作为结束执行语句,与触发器中需要的分行起冲突
为解决此问题可用DELIMITER,如:DELIMITER &&,可以将结束符号变成&&
当触发器创建完成后,可以用DELIMITER ;来将结束符号变成;

  • 25
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值