mysql - 使用 ColdFusion 和 MySQL 处理多个图像

标签 mysql image coldfusion imagesource

这是一个架构问题,但它的解决方案在于 ColdFusion 和 MySQL 结构——或者至少我是这样认为的。

我的数据库中有一个产品表,每个产品可以有任意数量的屏幕截图。我目前显示产品屏幕截图的方法如下:

我有一个文件夹,其中包含与所有产品相关的所有屏幕截图。所有屏幕截图的名称都与它们在数据库中的产品 ID 完全相同,再加上一个前缀。

例如:productID为15的产品截图在images文件夹中,名称为15_screen1.jpg、15_screen2.jpg等...

在我的 ColdFusion 页面中,我将图像路径硬编码到 HTML (images/) 中;图像名称分为两部分;第一部分是使用查询中的 productID 动态生成的;第二部分是前缀,并且是硬编码的。例如:

<img src"/images/#QueryName.productID#_screen1.jpg">
<img src"/images/#QueryName.productID#_screen2.jpg"> etc...

此方法有效,但它有几个最大的限制,如下所列:

  1. 我必须在我的 HTML 模板中硬编码屏幕截图的确切数量。这意味着我可以显示的屏幕截图数量将始终相同。如果一个产品有 10 个屏幕截图,而另一个有 5 个,这将不起作用。
  2. 我必须将图像前缀硬编码到我的 HTML 中。例如,我最多可以有五种类型的屏幕截图与一个产品相关联:productID=15 可能有 15_screen1.jpg、15_screen2.jpg 和 15_FrontCover.jpg、15_BackCover.jpg 和 15_Backthumb.jpg 等...

我考虑过在我的产品表中创建一个路径列,但这意味着为每个产品创建数百个文件夹,这似乎也不太有效。

有没有人对解决这个问题的正确方法有任何建议或想法?

非常感谢!

最佳答案

怎么样...

使用图像表,一个产品到多个图像(带有可选的 sortOrder 列?),并使用 imageID 作为 jpeg 文件名?

更新:

有一个 ImageClass 表,多个 Image 对应一个 ImageClass。

Image
-----
ID
productID
imageClassID (FK to ImageClass)

使用后端业务逻辑强制某些类只能有一个图像。

或者......如果你真的想强制某些类只能使用一张图片,那么可以进行更复杂的设计:

Product
------
ID
name
...
frontCoverImageID
backCoverImageID
frontThumbImageID
backThumbImageID

Image
-----
ID
productID
isScreenShot (bit)    // optional, but easier to query later...

但是,我更喜欢第一个,因为您以后可以拥有尽可能多的类,而无需重构数据库。

关于mysql - 使用 ColdFusion 和 MySQL 处理多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299124/

相关文章:

coldfusion - 复制数据时querySetCell为NULL?

coldfusion - ColdFusion 中的相对日期

php - 使用表达式引擎回显多个类别 ID

mysql - 简化 SELECT 中的多个 CASE 调用

mysql - 外键约束错误 - MySQL

xcode - 使用按钮时图像不显示

java - 设置新的像素值

java - FTP - 以编程方式确定剩余时间或传输的字节数的方法?

MySql 查询 : include days that have COUNT(id) == 0 but only in the last 30 days

html - 如何使 div 响应的背景图像?