回答

收藏

如何保持数据库表中记录的顺序?

技术问答 技术问答 514 人阅读 | 0 人回复 | 2023-09-14

我正在创建一个数据库表,它将存储最终显示在网页上的菜单链接。
, _# h# Z* Z- X% d6 k我的问题是我想控制菜单项的顺序。我可以有一个名字order但每次我有一个新的菜单链接,我都必须插入顺序,并将所有高顺序的记录更改为 1。
* f' Y) ~# V  q: m例如,假设我想按此顺序):. {' j: I+ w+ |# j2 A" }3 Y
家 关于  产品 购物我可以有一个叫 MenuLinks    表,并有以下几: 名称,顺序9 Z4 O2 n& J: t
我的数据如下:
  v$ H) f: @+ \5 Q6 _4 A! ?名称顺序 首页1  2  产品3 购物4但是,如果我现在想加一个名字 ContactUs    新链接,但我想直接在主页下显示。6 o# D4 p! ^/ p$ M& x) i. b- \+ `
谁能想出更好的方法来存储需要在数据库表中排序的列表,而不需要繁琐的维护工作。7 b4 f9 v( J- e& x, g3 s& ^1 q
                                                               
% R5 I/ c: D# U5 z8 x    解决方案:                                                               
) t  n; t2 N' M" M  F                                                                我认为这与使用数组有关vs链表的一般问题是相关的。如何将下一个记录的外键存储在同一表中?这类似于链表。
4 e  Q1 N3 _- M. i对于你的例子,没有太多的选项卡,所以基于数组的方法应该能够正常工作。但对于有数百个记录的人来说,使用自引用外键可能非常有用。, _% _/ w2 o1 M$ u. x, [2 Q
ID Name      NExT   1 Home      2  2  2  2           2                 2 About     3 3 3  3  3  3                     3 3 3 3  3 Products  4  4 Shopping  NULL添加和删除行类似于链接列表的插入和删除。
1 w5 P, N3 d5 A0 s更新:修改表
! z7 R" X- d' K1 J6 |, UID Name       NExT   1 Home       5  2                     5 5 About      3 3 3  3  3  3                         3 3 3 3 3 3 Products  4  4 4 Shopping   NULL 5 Contact us 2顺序将是1> 5> 2> 3> 4,由下列确定。您也可以使用它prev列,使其类似于双向链接列表。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则