回答

收藏

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

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

我正在创建一个数据库表,它将存储最终显示在网页上的菜单链接。
* M2 V  U8 P1 a0 s4 k我的问题是我想控制菜单项的顺序。我可以有一个名字order但每次我有一个新的菜单链接,我都必须插入顺序,并将所有高顺序的记录更改为 1。; Z' L3 U  C! R, h( l
例如,假设我想按此顺序):
4 I9 V/ R  B  ~家 关于  产品 购物我可以有一个叫 MenuLinks    表,并有以下几: 名称,顺序# ]9 L8 c$ R4 T/ _5 `
我的数据如下:
. U' t0 B! ~1 S# d% _* q3 ]名称顺序 首页1  2  产品3 购物4但是,如果我现在想加一个名字 ContactUs    新链接,但我想直接在主页下显示。
& o* M3 r0 e3 e% u谁能想出更好的方法来存储需要在数据库表中排序的列表,而不需要繁琐的维护工作。* G) f* r+ v- j! i6 R1 z/ g& V7 q
                                                                0 @+ i3 @0 b& ?
    解决方案:                                                                : i  L$ W6 {  I
                                                                我认为这与使用数组有关vs链表的一般问题是相关的。如何将下一个记录的外键存储在同一表中?这类似于链表。
& z# W9 X3 y0 T$ @0 A5 z/ E对于你的例子,没有太多的选项卡,所以基于数组的方法应该能够正常工作。但对于有数百个记录的人来说,使用自引用外键可能非常有用。) k, _+ m. f0 |: u
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添加和删除行类似于链接列表的插入和删除。
; m7 F2 N* H! H- X更新:修改表
( l) j# M; F2 {2 O+ b* A/ }4 q6 ?5 iID 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列,使其类似于双向链接列表。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则