发新话题
打印

[建议]纯技术讨论

[建议]纯技术讨论

总的来说程序逻辑不错,技术细节差了点,主要是SQL语句太死板,千篇一律的 select * form ... where ...

需要改进的地方:

1、取日记列表应当指明所需的字段,比如改成:select diaryid,xq,title,[time] from diary ordery by....内容字段就不要取了,节省资源。

2、取前N条记录(最新和推荐)不要把记录全部读,用"select top n 字段1,字段2,..... from 表..." 这样rs就只有n条记录,既节省资源又方便,循环时也不需要加变量判断。

3、取记录数(日记本总数和日记总数)不要全部打开再用recordcount方法,直接用count 函数,节省资源,比如取日记总数: sql="select count(diaryid) from diary" set rs=conn.execute(sql) amount=rs(0) rs.close

4、play.asp要先查diaryuser表取bookname和username,再查diary表取日记内容,两步其实可以合为一步: sql="select diaryuser.bookname,diaryuser.username,diary.* from diaryuser inner join diary on diaryuser.userid=diary.userid where diary.diaryid="&id set rs=conn.execute(sql) ....

5、其他建议: diary表的good和display本身只有两个值(真/假),可以直接设为逻辑型字段,在程序中可以这样写代码: sql="select title from diary where good order by diaryid desc" sql="select * from diary where display and diaryid="&id if rs("display") then ... if not rs("good") then ...

数据库每个表都有id字段,可以直接用id作为查询关键字来确定唯一记录,比如在book.asp中,由于id字段是长整型值且自动编号有索引,username字段是文本型而且没有索引,在作比较运算时id字段效率明显高于username字段。

TOP

由于在下刚学ASP,所以还望高手您多多指教。

看了文章内容,突然发觉学了不少东西,谢谢。

交个朋友吧,QQ:32522961

TOP

呵呵,学ASP只学VBS是不够的,SQL是ASP的一个精华部分,网页程序的一个重要原则是效率第一,尽量小资源占用,一个好的SQL语句可以达到事半功倍的效果。

我在写ASP的时候一般会用到inner / left / rignt join ... on, count, sum, in(...), delete ... where, update ... set ... where等等,光是一条select ... from ... 虽然可以达到同样的效果,但是效率太低了。你可以多看一些数据库以及SQL语言的文章,另外对ASP数据库对象再多了解些。

比如:删除一条记录

你的方法是:

sql="select * form table where id="&id set rs=server.createobject("adodb.recordset") rs.open sql,conn,1,3 rs.delete rs.update

其实可以这样: sql="delete table where id="&id conn.execute(sql) 只用一个conection对象就能完成,是不是简洁许多呢?资源占用也少(我以前写DOS程序的时候这一点映象太深刻了,没办法,呵呵)

此外,我发现你的程序里有一些不含变量的sql语句,严格来说,应当把它们写成数据库查询,程序中直接调用,不过这些语句都很简单,无此必要。有时会遇到要取出值再计算的情况,就应当尽量在SQL语句中完成,让数据库来计算,WEB服务器只是显示结果,尤其是在数据库服务器和WEB服务器分离的情况下。

学习SQL语言有个很好的工具,就是Access,可以通过设计器来创建查询,再切换到SQL窗口看对应的SQL语言,可以直接复制到ASP程序中,在ASP程序中几乎所有的SQL语句都可以在这里生成,你要做的不过是改改 where =****, 很方便。

最后,我也不是什么高手,只是比你多了解一些数据库,至于ASP程序本身,我懂的你都懂呵呵。 你们的网站很时尚,我早就策划做个类似网站,由于一些原因,做了另外一个专业网站,本来想用你们的日记程序做点修改整合到我的程序里面,但是后来我发现,要无缝整合工作量等于自己重新写一个,哈哈。废话不多说,有时间大家交流交流。Q:5222786

TOP

加你了~``发你发信息了。。。不过你好像长期不在线

TOP

在 不过永远隐身

TOP

晕啊~``怪不得不见你~``有空“献献身”。。。我们、好好聊聊

TOP

楼主说得不错,普宁日记的代码写得比较差,所以我第一次见到,就坚持不用它的代码了,只是采用他的界面. http://free.18q.net/diary

我的日记本比这个日记运行效率高得多了,可惜现在用户太多,大量的图片导致流量大得厉害,换了几次空间都不行,现在慢得离谱,快维持不了

[此贴子已经被作者于2005-10-24 11:04:54编辑过]

TOP

引用:
以下是引用goodok在2005-10-24 11:01:06的发言:

楼主说得不错,普宁日记的代码写得比较差,所以我第一次见到,就坚持不用它的代码了,只是采用他的界面. http://free.18q.net/diary

我的日记本比这个日记运行效率高得多了,可惜现在用户太多,大量的图片导致流量大得厉害,换了几次空间都不行,现在慢得离谱,快维持不了

大哥,我是刚学习ASP,基本算是什么都不懂,一般都是边修改边学习(工作时间太忙)

好不容易碰到一个我喜欢的日记本,哈哈,真的很漂亮,不过。。。速度有点慢

不知。。。。。。咳咳。。能否给小弟我发一份你修改了代码的日记本啊???

真的好喜欢啊。。跪求。。。。。。。。。。。联系QQ:45118711

[em02]

TOP

发新话题