问题背景
在这个问题背景中,页面的大概布局是下面这张图的样子。这是一个关于新闻的网页,很我们平时见到的新闻网页没有上面差别,不过我们都知道,不论是新闻还是博客都提供了上一篇、下一篇的功能。那么这个功能如何实现呢?下面就一步步去了解和思考这个问题。
下面看看数据的结构,如下图。这张表的主键是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、学习的过程,有时候,不仅在于学到的具体内容,更多要注意思考的过程。