回答

收藏

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

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

我正在创建一个数据库表,它将存储最终显示在网页上的菜单链接。: D4 E9 k2 D" v; X$ j' O* T
我的问题是我想控制菜单项的顺序。我可以有一个名字order但每次我有一个新的菜单链接,我都必须插入顺序,并将所有高顺序的记录更改为 1。! `. i& \" m- H5 N# f
例如,假设我想按此顺序):5 q" h0 h/ O3 d5 X+ L$ d0 L4 v- P
家 关于  产品 购物我可以有一个叫 MenuLinks    表,并有以下几: 名称,顺序
- M: w% x1 A: x9 Q我的数据如下:' d& h0 I7 E8 U# z( f4 B
名称顺序 首页1  2  产品3 购物4但是,如果我现在想加一个名字 ContactUs    新链接,但我想直接在主页下显示。$ R+ ]% {6 n* w, j. b  N
谁能想出更好的方法来存储需要在数据库表中排序的列表,而不需要繁琐的维护工作。
/ D3 J" ?" K& F) c                                                                % K* Z* ]. ?1 X% u2 N, z; c8 I' @5 I
    解决方案:                                                                7 o0 m. A$ d4 p
                                                                我认为这与使用数组有关vs链表的一般问题是相关的。如何将下一个记录的外键存储在同一表中?这类似于链表。
* ^" G+ j5 S' c! ?对于你的例子,没有太多的选项卡,所以基于数组的方法应该能够正常工作。但对于有数百个记录的人来说,使用自引用外键可能非常有用。& m# w" R7 S0 e/ p% r+ J& t: c
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添加和删除行类似于链接列表的插入和删除。
2 e- w6 q. [7 w! ]1 o/ k7 _6 N更新:修改表6 D! h1 S, j5 A+ t1 d; P
ID 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列,使其类似于双向链接列表。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则