web开发经常遇到的问题

ma_ta 2007-01-16 01:40:46
首页有个15行的列表,显示的内容为每个小类的最新一条信息,共15个小类,有没有什么好办法实现?
...全文
623 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
ma_ta 2007-01-16
  • 打赏
  • 举报
回复
先结了这帖,再开一个
ma_ta 2007-01-16
  • 打赏
  • 举报
回复
请问一下有知道我在1分钟内刷新1000次首页的情况下,
1、用单独表来存最新信息和用存储过程来查,两者性能到底有多大差别?
2、或者能通过什么办法或测试工具可以检测出来?
liujia_0421 2007-01-16
  • 打赏
  • 举报
回复
不过结果中的maxid和id的值其实是一样的,所以任选一即可..
liujia_0421 2007-01-16
  • 打赏
  • 举报
回复
我根据你说的测试如下:


create table newstype
( typeid int,
parentid int
)

create table news
( id int,
typeid int,
title varchar(20)
)

insert into newstype values(1,5)
insert into newstype values(2,5)
insert into newstype values(3,5)
insert into newstype values(2,6)

insert into news values(1,1,'aaa');
insert into news values(2,1,'bbb');
insert into news values(3,1,'ccc');
insert into news values(4,2,'ddd');
insert into news values(5,2,'eee');
insert into news values(6,3,'fff');
insert into news values(7,3,'ggg');


select b.typeid,b.maxid,c.id,c.title from newstype a,
(select typeid,max(id) as maxid from news group by typeid) b,news c
where a.parentid=5 and a.typeid=b.typeid and b.maxid=c.id


输出:
typeid maxid id title
1 3 3 ccc
2 5 5 eee
3 7 7 ggg
liujia_0421 2007-01-16
  • 打赏
  • 举报
回复
好像没得什么问题吧..
ma_ta 2007-01-16
  • 打赏
  • 举报
回复
不好意思,上边写错了,新闻类别表中的id,typeid其实是一个意思,不过sql语句里只用到typeid
ma_ta 2007-01-16
  • 打赏
  • 举报
回复
新闻表 news
字段 id,typeid,title,updatetime...
新闻类别表 newstype
字段 typeid,name,parentid...
ma_ta 2007-01-16
  • 打赏
  • 举报
回复
我通过查询该类别的最大id来取数
下面是我的查询语句,大家帮看看(我要查的是大类id=5的所有小类最新一条数据)
select b.typeid,b.maxid,c.id,c.title from newstype a,
(select typeid,max(id) as maxid from news group by typeid) b,news c
where a.parentid=5 and a.typeid=b.typeid and b.maxid=c.id
liujia_0421 2007-01-16
  • 打赏
  • 举报
回复
就三个字段,连时间都没有吗?

那你怎么知道哪个是最新的文章呢?
ma_ta 2007-01-16
  • 打赏
  • 举报
回复
所有新闻文章都在一个表里,文章类别标识字段是typeid,另有个类别表,字段就是简单的id,typeid,parentid
liujia_0421 2007-01-16
  • 打赏
  • 举报
回复
写成一条语句也可以实现 ...

按类型分组,分别取出组中时间最新的就可以了..

楼上已经有人了..

Snowdust(雪尘) ( ) 信誉:100 Blog 2007-1-16 14:30:10 得分: 0

设信息的类型字段为TypeID,创建时间为CreateTime,信息表为InfoTable,则:
Select * From InfoTable Where CreateTime In (Select Max(CreateTime) From InfoTable Group By TypeID)



liujia_0421 2007-01-16
  • 打赏
  • 举报
回复
假如是这样的话,那就放在一个存储过程中吧...
liujia_0421 2007-01-16
  • 打赏
  • 举报
回复
不好意思,没弄清楚,你说的这15条记录是在一个表中吗?

记录中有一个字段标志类名?
ma_ta 2007-01-16
  • 打赏
  • 举报
回复
这top1 和group by 能查出15条记录?
liujia_0421 2007-01-16
  • 打赏
  • 举报
回复
如果数据量不是太大,直接从数据库中top 1 group by time desc...

如果数据量大的话,可以定时从数据库中取出信息放到更新到内存表中,页面上直接从内存表中来进行更新..
kingofbull 2007-01-16
  • 打赏
  • 举报
回复
ma_ta(ma_ta) ( ) 信誉:100 Blog 2007-1-16 15:30:17 得分: 0

建立一个专门放最新信息的表或文件,效率上是不是用存储过程要好些?
--------------------------------------------------------------------
个人觉得还是使用存储过程要好。
james_chen88 2007-01-16
  • 打赏
  • 举报
回复
UP
rainyubin 2007-01-16
  • 打赏
  • 举报
回复
学习学习,帮顶!
ma_ta 2007-01-16
  • 打赏
  • 举报
回复
建立一个专门放最新信息的表或文件,效率上是不是用存储过程要好些?
zhgroup 2007-01-16
  • 打赏
  • 举报
回复
对一这种问题,如果访问量比较大,可以在记录更新时将其最新记录写入到指定的文件中,毕竟大多数用户都是在查看。
加载更多回复(4)
《ASP.NET开发典型模块大全(修订版)》以关键技术和热点技术为核心,通过27个典型模块和5章热点技术,全面地介绍了如何使用asp.net进行各领域的web项目开发。全书共3篇分为32章,第1篇关键模块篇,覆盖网站开发的关键领域,内容涉及论坛、博客、播客、网络硬盘、电子邮件、在线考试、网站备忘录、在线短消息、网站访问量统计与分析、系统后台管理权限分配等网站关键模块;第2篇常见模块篇,覆盖网站开发的各个领域,内容涉及网站会员注册及登录、会员密码找回、留言本、上传与下载、图片资源管理、搜索引擎、网上问卷调查、rss在线订阅、聊天室、购物车、在线银行支付、手机短消息管理、在线音乐、投票系统、万能打印、数据自动备份与恢复等常见模块;第3篇热点技术应用篇,解决网站开发在某个领域遇到的技术难题,内容涉及linq数据访问技术、安全技术、服务技术、ajax、高级应用技术等。 《ASP.NET开发典型模块大全(修订版)》附有配套光盘。光盘提供了书中所有案例的全部源代码,并经过精心调试,在windows xp和windows 2000下全部通过,保证能够正常运行。此外,光盘中还提供有编程词典试用版软件。 《ASP.NET开发典型模块大全(修订版)》案例涉及领域广泛,实用性非常强。学习本书读者可以了解各个领域的特点,能够针对某一行业进行软件开发,也可以通过光盘中提供的模块源代码进行二次开发,以减少开发系统所需要的时间。本书适合各级软件开发人员学习使用,也可供大、中专院校师生学习参考。

110,569

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧