项目实战玩转数据库之上一篇下一篇

问题背景


在这个问题背景中,页面的大概布局是下面这张图的样子。这是一个关于新闻的网页,很我们平时见到的新闻网页没有上面差别,不过我们都知道,不论是新闻还是博客都提供了上一篇、下一篇的功能。那么这个功能如何实现呢?下面就一步步去了解和思考这个问题。

下面看看数据的结构,如下图。这张表的主键是GUID,没有规律。如果我们的当前新闻页是数据库中A记录,那么何根据时间的先后顺序来读出距离当前新闻的时间戳最近的上一篇和下一篇新闻?


------------------------------------------------------------------------------------------------------

分析困哪点


1、数据库中的数据不是按照时间顺序排序的。
2、数据库中没有自增加的字段
------------------------------------------------------------------------------------------------------

提出解决方法

用图来分析问题,如下图所示。

--------------------------------------------------------------------------------------------------

实战过程

SQL代码:

select top 1 * from news

where TimeStamp  <(select TimeStamp from News where NewsID='EB334E3F-EDB0-425E-8175-86DAABDA0600') and IsShow='是' and IsEnable =1   order by TimeStamp  DESC

------------------------------------------------------------------------------------------------------------------------------------

总结思考

1、学习要善于使用画图,这样能帮助我们缕清思路。提高学习效率。

2、学习过程中要从宏观去思考问题,不能一头扎进细节出不来。

3、学习的过程,有时候,不仅在于学到的具体内容,更多要注意思考的过程。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 36
    评论
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值