gpt4 book ai didi

php - 有哪些方法可以在数据库中存储项目的顺序?

转载 作者:行者123 更新时间:2023-11-29 08:09:42 27 4
gpt4 key购买 nike

我正在创建一个作品集网站,其中包含包含图像的画廊。我希望该作品集的用户能够订购图库中的图像。问题本身相当简单,我只是在努力决定要实现的解决方案。

到目前为止我想到了两种解决方案:

  1. 只需添加一个 order 列(或优先级?),然后在该列上使用 ORDER BY 子句进行查询。这样做的缺点是要更改单个图像的顺序,我必须更新图库中的每个图像。
  2. 第二种方法是添加 2 个可为空的列 nextprevious,它们仅存储下一张和上一张图像的 ID。这意味着订单更改时需要更新的数据会减少;但是,设置起来会复杂得多,而且我不完全确定如何实际实现它。

额外的选项会很棒。

  • 这些选项可行吗?
  • 有更好的选择吗?
  • 如何/应该实现这些措施?

相关两个表的当前结构如下:

mysql> desc Gallery;

+--------------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+-------------------+-----------------------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| title | varchar(255) | NO | | NULL | |
| subtitle | varchar(255) | NO | | NULL | |
| description | varchar(5000) | NO | | NULL | |
| date | datetime | NO | | NULL | |
| isActive | tinyint(1) | NO | | NULL | |
| lastModified | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+--------------+------------------+------+-----+-------------------+-----------------------------+

mysql> desc Image;
+--------------+------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+-------------------+-----------------------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| galleryId | int(10) unsigned | NO | MUL | NULL | |
| description | varchar(250) | YES | | NULL | |
| path | varchar(250) | NO | | NULL | |
| lastModified | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+--------------+------------------+------+-----+-------------------+-----------------------------+

目前还没有实现任何形式的排序。

最佳答案

虽然 1 有点难看,但你可以这样做:

  UPDATE table set order=order+1 where order>='orderValueOfItemYouCareAbout';

这将更新所有其余的图像,您无需做大量的跑腿工作。

关于php - 有哪些方法可以在数据库中存储项目的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886851/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com