文件夹和文件MySQL表设计问题

SELECT c.catalog_id, c.title FROM catalog AS c WHERE c.deleting = 0 AND c.hide = 0 ORDER BY c.catalog_id DESC LIMIT 0, 20

SELECT i.img_id, i.original_name FROM img AS i WHERE i.deleting = 0 AND i.hide = 0 ORDER BY i.img_id DESC LIMIT 0, 20

我现在做的两个表,一个文件夹catalog和图片img表,现在查询展示存在一个问题,比如每页20条,展示的时候肯定是先展示文件夹,不够再是图片,那应该怎么查询,开始以为简单认为,先查文件夹,如果不够20,再用图片来补,可如果是文件夹到第二页,翻页的时候,第二页后就不知道怎么查了

是不是不是这么设计的,高手赐教下

比如下面这个,翻页怎么做,如果文件夹不超过第一页,那还好一点,如果超出第一页,那后面的怎么做

image.png

阅读 3.2k
2 个回答

放一张表肯定会处理方便得得多,如果你两张表也好处理吧,和第一页一样处理就行,当返回数据前端发现第一页20条则弄个标记1(type=1告知后端还是优先请求文件夹)和offset来请求第二页,直到后端发现limit20时数据却不满足20条,后端则告诉前端已经为标记2(type=2图片)和offset,之后前端使用type=2&offset=10&limit=30对后端发起请求,当后端发现type=2时,就直接查找图片

(默认页面查询20个时)获取页面数据时,设置两个参数文件夹数量图片数量,第一页查询时默认都为零,第一页查询完成后把实际查询到的文件夹数量图片数量返回给页面;

第二页查询时将参数获取到,
判断是否还需要取文件夹?文件夹数量就是开始位置

判断是否需要取图片?图片数量就是开始位置

后面都类似操作即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题