gpt4 book ai didi

php - 我应该如何存储在线商店的产品和产品图像数据?

转载 作者:行者123 更新时间:2023-11-29 06:24:09 26 4
gpt4 key购买 nike

我正在使用 PHP 和 MySQL 开发一个店面应用程序。我目前将数据存储在 4 个表中:一张用于产品线,一张用于这些产品线中的特定产品,一张用于产品图像,另一张指定哪些图像链接到哪些特定产品。每个特定产品属于一个产品系列,每个产品图像可以属于多个特定产品,并且每个特定产品可以有多个图像。我的表格如下所示:

ProductLines
id, name, description, etc.
SpecificProducts
productLineID
id, color, size, etc.
ProductImageLinks
specificProductID
imageID
Images
id, imageFileLocation, name, etc.

这种方式工作得很好,但对于检索来说似乎效率不高。

例如,我有一个页面,其中列出了每个产品系列以及从该产品系列中随机选择的图像的缩略图。为此,我必须首先查询数据库以获取所有产品线的列表,然后对每个产品线执行单独的查询以获取具有关联图像的所有特定产品,选择其中一个,然后再次查询即可获取图像。

我考虑的另一种可能性是使用一个查询来获取我正在查看的所有产品线,第二个查询来获取所有这些产品线的所有特定产品,第三个查询来获取所有图像链接指定哪些图像链接到哪些特定产品,第四个查询用于获取所有这些图像。我想这会更快一点,因为查询数量减少了,但它会给 PHP 留下大量工作来弄清楚产品线、产品和图像之间的连接,这可能会很慢。

所以我的问题是,有没有更好的方法来存储这些数据?或者根据我已有的数据库来检索它的更好方法?或者我确定的两个选项之一确实是我最好的选择?

编辑:我实际上并没有将图像文件存储在数据库中。图像文件存储在文件系统中。我在数据库中的“图像”表仅存储图像文件的位置以及图像标题、替代文本等有用信息。

最佳答案

是的 - 只需编写一个查询即可一次性检索所有信息。

我对此有点生疏,但你可以在 mysql 引用中查找查询。

  1. 创建一个查询,通过适当的键连接这些表
  2. 您需要从检索特定查询图像的子查询中选择第一项,然后按 rand() 排序并选择第一项。

这绝对可以在单个查询中完成。即使不能,您始终可以创建 View ,这有时是组织查询的更好方法,以便它们更具可读性。换句话说,只需创建一个与第一个查询相对应的 View ,而不是返回查询结果。然后创建一个 View ,该 View 对应于在第一个查询的结果上运行第二个查询,该查询在 View 之外进行操作。等等。然后,您可以通过从最终 View 中检索来一次性完成实际查询。

关于php - 我应该如何存储在线商店的产品和产品图像数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1148500/

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