新闻发布系统后台

学习完牛腩的新闻发布系统后台部分,与原先的机房收费系统相比,又学习到了很多的东西。


一:数据库


1.代码建立数据库

机房的时候一直是手动建立数据库,这次用代码建立数据库,感觉还是挺简答的。

-- 建立数据库
create database newssystem
-- 建立类别表
create table category
(
	id int identity(1,1) primary key,
	[name] varchar(20) not null
)
-- 建立新闻表
create table news
(
	id int identity(1,1) primary key,
	title varchar(100) not null,
	[content] text not null,
	createTime datetime not null,
	caId int 
)
-- 建立评论表
create table comment
(
	
id int identity(1,1) primary key

,[content] text not null,createTime datetime not null,userIp varchar(15) not null,newsId int)


2.主外键

这次才真正明白了主外键的作用。主键是唯一标识你这一行数据的字段,并且不能为空,外键是联系两个表之间关系的键,如果两个表中建立了外键的关系,那么就不能随便将其中一个表删除。

设置主键可以用primary key设置,外键可以用数据关系图来设置,很方便。



3.自增长

有的时候可以把主键设置为自增长,当然其他也可以,看你自己的需要,下面来说两种方法设置自增长。

idintidentity(1,1)primarykey其中黄色部分就是设置自增长的代码。

还可以手动设置。



当id自增长太多,如果想让自增长还原,就是重新从某个数开始增长,我们可以执行这个SQL语句 Dbcc Checkident  ('dbo.category' ,Reseed,5),dbo.category是数据库名,5是下次添加行的时候从5开始自增长。


4.默认值或绑定



5.存储过程

这次存储过程用的也比较多,表与表之间连接用了好多,desc降序,asc升序。

-- =============================================
-- Author:		NQQ
-- Create date: 2017-6-12
-- Description:	选择最新十条新闻
-- =============================================
ALTER PROCEDURE [dbo].[news_selectNewNews]
AS
BEGIN
	select top 10 n.id,n.title,n.createtime,c.name from news n
	inner join category c on n.caId =c.id 
	order by n.createTime desc
END


-- =============================================
-- Author:		NQQ
-- Create date: 2017-08-07
-- Description:	取出10条热点新闻(评论回复最多的十条新闻)
-- =============================================
ALTER PROCEDURE [dbo].[news_selectHotNews]

AS
BEGIN
	select top 10 n.id,n.title,n.createTime,c.name,count(com.id )as comCount from news n
	inner join category c on n.caId =c.id 
	inner join comment com on com.newsId  =n.id
	group by n.id ,n.title ,n.createTime ,c.name 
	order by comCount desc
	
END

6.触发器

触发器是一个特殊的存储过程,它的执行不由程序调用,也不是手工启动,而是由事件来触发的,例如对一个表进行(insert、delete、update)时候就会激活它执行。触发器常用语加强数据的完整性约束和业务规范等。

新闻发布系统中删除新闻的类别,不仅仅要把这个类别删除,连同这个类下的新闻和新闻评论一并删除。如果只删除新闻类别的话,就会由于主外键的约束产生错误,所以可以在这里用到触发器。牛腩新闻发布系统(1)——浅入浅出SQL触发器



  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值