1

所以,经过数周的研究,我最终决定在我的粉丝网站画廊的数据库模型上:

  1. 我有图像,每个图像都有不同的大小,位于 2 级文件系统结构中。

  2. 每个图像最多有 5 种不同的尺寸(小、拇指、中、大、超大)。尺寸基本上是我在图像名称末尾添加的后缀。

  3. 一级目录为图片名右起最后一个整数,二级目录为右起第二个整数……</p>

  4. 我在 php 中有一个常量变量,它定义了图像主文件夹的根目录:

    define('IMAGE_PATH', '…/images/')
    

    因此,图像路径可能如下所示:

    …/images/6/7/3346642.4565676.jpg
    

    以及该图像的小尺寸:

    …/images/6/7/3346642.4565676_s.jpg
    

    …大号:

    …/images/6/7/3346642.4565676_l.jpg
    

    等等……</p>

表格如下所示:

image (image_id, title, caption, file_dir, file_name, file_ext, update_date, upload_date)
image_size (size_id, name, suffix)
image_data (image_id, size_id, width, height)

这是问题。我不需要file_dir,甚至不需要,file_ext因为我可以使用 PHP 或在查询中获取那些(使用substringand concat)但是,我读过在查询中使用子字符串很昂贵......我想如果我已经在表中有这些,它更快,无需在查询中使用 php 或函数……你觉得呢?将这些值放在表格中是否太过分……多余?

我可以只有文件名(即:3346642.4565676.jpg,然后让 PHP 或查询从图像文件夹中找出相对路径,或者我可以在表中分别拥有文件目录和文件扩展名……</p>

有什么建议么?

4

1 回答 1

0

很难很好地回答您的问题,因为我们没有关于您的代码设置方式的所有信息。但我的建议是不要太担心连接字符串的性能。只需设置对您最方便的任何内容,并在概念上以清晰自然的方式组织信息。稍后,如果您发现存在性能问题,您可以处理它,但我怀疑是否将完整路径名存储在 sql 中是否会产生很大的不同。我怀疑您可能希望能够将所有图像移动到另一个文件夹而不必更新 oyur 数据库中的所有行?

于 2013-04-07T03:14:30.457 回答