标签:ar 使用 sp 数据 on art 问题 bs ef
最近参加了企汇网的一个叫做中原宝贷的网站建设项目,由于我是实习程序员,所以只分到了新闻中心这一块,该项目是利用MVC做的,由于我们只有三个人,人手严重不足,所以从数据库设计,到后台开发都有每个人分别完成,本文就我将我在数据库设计的一些感触写出来与大家分享。
首先是关于增删改查中的删除,在实际开发中是逻辑删除而不是物理删除,即添加一个标志位(IsDelete int)默认值是1,即显示数据,当删除数据是把标志位(IsDelete)更新为0即可。
详见语句
select * from NewsInfo where IsDelete=1 及查询所有数据
select * from NewsCategory where Id=@Id and IsDelete=1 根据ID查询数据
uodate NewsInfo set (列名=@值,IsDelete=0) where Id=@Id 删除数据
至于更新数据就就不说了。
二.关于上一篇下一篇
其中要实现分页和分篇功能
先说分页因为分页是根据分篇实现的
分页的sql语句主要是利用 row_number()函数实现的
由于可能多次使用所以使用了存储过程
分页存储过程
CREATE PROCEDURE [dbo].[p_News_GetNewsPage] @startindex int, @lastindex int, @id int AS select * from ( select NewsId ,NewsTitle,NewsContent,NewsPublisher,NewsDatetime, NewsClassid,ROW_NUMBER() over(order by NewsId asc) as number from NewsInfo where NewsInfo.NewsClassid=@id ) as a where a.number>=@startindex and a.number<=@lastindex
其中@startindex是当前页的第一条数据, @lastindex是当前页的最后一条数据,NewsClassid是新闻分类Id,实现分类分页读取
然后上一篇只需去去新闻id小于当前数据的倒叙的第一条也就是 top 1 *
存储过程如下
下一篇存储过程。
CREATE PROCEDURE [dbo].[p_News_GetnextNews] @id int, @classid int as select top 1 * from NewsInfo where NewsId> @id and NewsClassid=@classid order by NewsId ASC
上一篇就不说了,留给大家思考,相信大家能写出来
标签:ar 使用 sp 数据 on art 问题 bs ef
原文地址:http://www.cnblogs.com/moyuxuan/p/4102599.html