数据结构设置为双向链表的形式:
id,preId,nextId,otherData
在删除某id时,更新上一条和下一条的链接关系就行了吧?
补充个PHP的例子:
// 新建
$data = new Data;
$data->otherData = "我家本住在,苏州~的城边~";
$data->id = $db->create($data);
// 只在新建时,有个order by的查询,其他sql都是直接id定位
$preId = $db->read("idid} order by id desc limit 1");
$db->update("set preId={$preId} where id={$data->id}");
$db->update("set nextId={$data->id} where id={$preId}");
?>
// 查询和显示
$data = $db->read("id=9527");
echo $data->otherData;
echo "[link id={$data->preId}]上一条[/link] ";
echo "[link id={$data->nextId}]下一条[/link]";
?>
// 删除
$data = $db->read("id=9527");
$db->update("set nextId={$data->nextId} where id={$data->preId}");
$db->update("set preId={$data->preId} where id={$data->nextId}");
$db->delete($data->id);
?>