我正在创建一个数据库,它基本上可以处理音乐专辑插图及其不同大小。专辑插图由缩略图、主封面图像、缩放图像和其他类型的图像组成。大小比例方面因专辑格式而异。因此,CD 专辑的缩略图可能是 50 像素 x 50 像素,但对于 CASSETTE,它可能是 35 像素 x 50 像素...
IE:
CD 将包含 3 种或更多尺寸(拇指、主要、缩放等)的封面插图(类型)
CD 还将包含 3 种或更多尺寸(拇指、主要、缩放等)的镶嵌 cd 图稿(类型)
在网上搜索,似乎有不同的方法可以实现这一点。
方法一:
- 有一个带有输入字段的表单来输入数据
- 有一个上传输入字段来上传图像(高质量的图像......我们称之为 imageX),它将用于创建不同的尺寸。
- 验证 imageX 是否可接受(大小、类型等...)
- 现场创建不同的尺寸,并在数据库中为创建的每个尺寸添加一条记录。每条记录都包含大小(宽度和高度)和文件名
数据库模型:
artworktype
==========
artworktype_id, artworktype
artworksize
==========
artworksize_id, artworksize
artwork
==========
artwork_id, album_id, artworktype_id, artworksize_id, filename, filenamewidth, filenameheight
优点:
包括宽度和高度(无需启动 PHP 的 imagegetsize 来获取大小)
缺点:
冗余数据?
方法二:
- 有一个带有输入字段的表单来输入数据
- 有一个上传输入字段来上传图像(高质量的图像......我们称之为 imageX),它将用于创建不同的尺寸。
- 验证 imageX 是否可接受(大小、类型等...)
- 在现场创建不同的大小并相应地将它们移动到文件系统(命名约定待定)
- 仅为上传的文件在数据库中创建一条记录。
- 让 PHP 确定大小并使用命名约定来获取其他大小
数据库模型:
artworktype
==========
artworktype_id, artworktype
artwork
==========
artwork_id, album_id, artworktype_id, filename
优点:
无冗余
缺点:
需要 PHP 的 getimagesize 函数来获取大小。对于图像,这是可以接受的。但是,对于许多图像(如一批缩略图),这可能会给服务器带来压力。
有没有标准可以实现这一目标?其他人是如何做到的?有什么意见吗?
编辑:我不喜欢数据库中的二进制数据......所以这个选项是不可能的......