数据库设计:“保存用户排序”的最佳设计方案是什么?

数据库设计:“保存用户排序”的最佳设计方案是什么?,第1张

这个排序作分类是必须碰到的。 你这个sort不是 唯一标识 实现起来还是比较简单的。

查询的时候 按照 sort排序。

点击上移或者下移 就是把 sort数值进行更新,临近数值的交换,

另外还要判断是否最顶或者最低。

<a href="do.aspx?action=Order&type=Down&id=4">下移</a>

<a href="do.aspx?action=Order&type=Up&id=4">上移</a>

<%

Dim ordertype,id

id=request("id")

ordertype=request("type")

If ordertype="Down" Then

sql="select top 2 sort from Class where id <= "&id&" order by sort desc"

Elseif ordertype="Up" Then

sql="select top 2 sort from Class where id >= "&id&" order by sort asc"

End If

set rs=server.createobject("Adodb.recordset")

rs.open sql,conn,1,3

Dim i

i= 0

If rs.recordcount=1 Then

If ordertype="Down" Then

response.Write("已经是最底部了。")

Elseif ordertype="Up" Then

response.Write("已经是最顶部了。")

End If

Else

Dim temp_this,temp_next

temp_this=rs("sort")

rs.movenext

temp_next=rs("sort")

rs.MovePrevious

rs("sort")=temp_next

rs.movenext

rs("sort")=temp_this

rs.update

End If

rs.close

set rs=nothing

%>

上面所列的几种排序方法的速度都很块,但快速排序,归并排序,基数排序和希尔排序都是在排序结束后才能确定数据元素的全部顺序,而无法知道排序过程中部分元素的有序性.而堆排序则每次输入一个最大(或最小)的元素,然后对堆进行调整,保证堆顶的元素总是余下元素中最大(或最小)的.根据题意,只要选取前10个最大的元素,故采用堆排序方法是合适的.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9561667.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存