回答

收藏

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

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

我正在创建一个数据库表,它将存储最终显示在网页上的菜单链接。2 Q" F1 S: i9 `7 N
我的问题是我想控制菜单项的顺序。我可以有一个名字order但每次我有一个新的菜单链接,我都必须插入顺序,并将所有高顺序的记录更改为 1。& p6 |. B& B0 z# i! @; G. u
例如,假设我想按此顺序):! T0 u- K3 V* P* r* t/ C& c
家 关于  产品 购物我可以有一个叫 MenuLinks    表,并有以下几: 名称,顺序
) [/ ]2 O0 b% k1 j我的数据如下:
2 w# C: Z: X- l' h名称顺序 首页1  2  产品3 购物4但是,如果我现在想加一个名字 ContactUs    新链接,但我想直接在主页下显示。: _0 o, m' W) m  k: E4 D( z
谁能想出更好的方法来存储需要在数据库表中排序的列表,而不需要繁琐的维护工作。
& W1 K) W$ h2 D                                                               
! [; C8 B; U- x$ U& T4 P+ G! G7 Q    解决方案:                                                                ! K3 o3 `' ^1 J
                                                                我认为这与使用数组有关vs链表的一般问题是相关的。如何将下一个记录的外键存储在同一表中?这类似于链表。
1 s& W- d$ R+ j; w  Q# q4 r对于你的例子,没有太多的选项卡,所以基于数组的方法应该能够正常工作。但对于有数百个记录的人来说,使用自引用外键可能非常有用。- [+ T- }  Z1 z7 \
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添加和删除行类似于链接列表的插入和删除。$ x. B  t" f( u& R
更新:修改表
7 [  \9 ]8 `3 ]" ?' x. {. m8 W8 rID 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列,使其类似于双向链接列表。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则