首页 > 代码库 > 关于软件开发的表结构设计问题

关于软件开发的表结构设计问题

最近参加了企汇网的一个叫做中原宝贷的网站建设项目,由于我是实习程序员,所以只分到了新闻中心这一块,该项目是利用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

 上一篇就不说了,留给大家思考,相信大家能写出来

 

关于软件开发的表结构设计问题