Php 我如何组织我的数据库,以便可以向上或向下移动项目?

Php 我如何组织我的数据库,以便可以向上或向下移动项目?,php,mysql,Php,Mysql,我正在创建一个软件,人们可以在其中列出生日清单,他们可以将项目放入清单中,其他人也可以查看。我的数据库中有一个表,其中所有内容都被组织起来,称为生日列表。它是这样安排的: 一个示例行是: person字段是项目的所有者,每个人的所有项目都在同一个表中。id、名称、链接和描述都是不言自明的。数字字段是查看列表页面时的显示方式,因此数字10将显示在0上方,优先级与此问题无关。这是我在浏览器中查看Jimmy列表时发生的一个示例。(别担心,我最终会说到点子上的) 我添加了很多图片,因为我没有任何意

我正在创建一个软件,人们可以在其中列出生日清单,他们可以将项目放入清单中,其他人也可以查看。我的数据库中有一个表,其中所有内容都被组织起来,称为
生日列表
。它是这样安排的:

一个示例行是:

person字段是项目的所有者,每个人的所有项目都在同一个表中。id、名称、链接和描述都是不言自明的。数字字段是查看列表页面时的显示方式,因此数字10将显示在0上方,优先级与此问题无关。这是我在浏览器中查看Jimmy列表时发生的一个示例。(别担心,我最终会说到点子上的)

我添加了很多图片,因为我没有任何意义,这是我能解释事情的最好方式:)

无论如何,下面是另一张显示示例数据库的图片

如果我在浏览器中查看Russell的列表,它将如下所示:

请注意$$$项目位于订书机上方,因为它的编号较高。这就是它的目的。如果我以Russell查看此列表的身份登录,我会看到按钮上写着
上移
下移
,这会增加和减少该项上的number属性。我将用一个示例场景来演示我的问题

假设Jimmy登录,他有很多列表项。他将一些项向上移动了好几次,因此得到的结果是,一个项的数值远远高于所有其他项的数值。然后,他向上移动另一个项目,重新加载页面,并认为它没有做任何事情,因为第二个项目的数值仍然小于第一个项目的数值。我希望这是有道理的。另一个问题是,如果两个项目的数值相同,这将是一个巨大的问题。关键是,我的方式是行不通的

有没有人知道一种方法,我可以让这个数字的东西正常工作,并告诉我如何才能使它,让用户可以移动项目上下他们的名单?(另外,如果我的数据库组织得不好,我也想知道:))

提前多谢

结束信息,以备需要:

  • 我正在用PHP5和MySQL构建它
  • 这是在带有GoDaddy的远程Linux服务器上

当您通过一个“移动”向上或向下移动一个项目时,将移动项目的“数字”值与它跳过的项目的“数字”值交换。

我会这样处理:

  • 对于移动/排序项目,您可以使用例如

  • 你可以通过它来获得订单

  • 将序列化数据发送到PHP脚本并交换/更新更改的位置(
    number

  • 更新数据库中的数据集

  • 选择
    已排序的数据,请使用
    按编号排序说明
    ()


  • 祝你好运!:-)

    你的问题真的让人困惑…太多的数据无法吸收…而且我觉得你的数据设置很糟糕!。。。你可以研究更有效的方法来处理这个问题。。。。