排序问题的数据库设计 点按钮上移一位,该条就上移一位,点下移一位,该条就下移一位.就是一条条移动,比如我的淘宝里的自己的分类排序. 这个数据表怎么设计呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 专门设置一个字段记录显示时的位置,假设为 `pos` INT UNSINGED UNIQUE ,点上移一位或下移一位操作的时候,先判断要操作的记录在所有记录中所处的位置:如果是上移操作,判断当前记录前有没有记录(当前记录pos值>0则前面有记录,可以上移),这是交换两条记录pos字段的值,上一条+1,当前记录-1,由于设置了UNIQUE属性,交换这个值得时候可能需要一个先把上一条记录的pos值设置为一个确定不会用到的整数(比如999999999999);下移一位的时候操作类似,先判断当前记录是否是表中的最后一条记录,再...为了保证pos字段值的连贯性,删除一条记录的时候,应该把先删除当前记录,再把后面所有记录的pos值-1,插入新记录的时候,如果固定插入到最后(假设按pos值ASC排序),要先查询表中当前最大的pos值max(pos),再+1,如果需要指定位置也要更新后续记录的pos值...当然,你也可以把位置字段设置为允许插入重复值,根据pos值大小以及另外一个字段的组合来排序. 我用数据库遇到的问题,望大家帮忙!!!急 ASP函数转PHP,请教 php分页问题 Call to undefined function odbc_exec() 请问怎么打印当前行? 问个简单的问题,请帮忙。 PHP简单图片上传,看看哪出问题了? PHP项目兼职 哪位有k666站长站的帐户?借用一下 *********请教winsock问题********** 我往页面的发送 header('HTTP/1.0 401 Unauthorized'); 错误信息却显示不出来,为什么啊? 诚聘网站PHP工程师
为了保证pos字段值的连贯性,删除一条记录的时候,应该把先删除当前记录,再把后面所有记录的pos值-1,插入新记录的时候,如果固定插入到最后(假设按pos值ASC排序),要先查询表中当前最大的pos值max(pos),再+1,如果需要指定位置也要更新后续记录的pos值...当然,你也可以把位置字段设置为允许插入重复值,根据pos值大小以及另外一个字段的组合来排序.