所以我有一个以相册组织的图片库网站,所以 存储相册图片的db表,基本上是这样的方案:
album_id | images_link
112 | 1.jpg
112 | 2.jpg
112 | 3.jpg
112 | 4.jpg
112 | 5.jpg
112 | 6.jpg
112 | 7.jpg
112 | 8.jpg
112 | 9.jpg
所以为了避免超长的数据库表,我想也许可以将相册的所有图像存储到一个单元格中,如下所示:
album_id | images_link
112 | 1.jpg, 2.jpg, 3.jpg, 4.jpg, 5.jpg, 6.jpg, 7.jpg, 8.jpg, 9.jpg
我的意思是数据库大小当然会保持不变,但会有显着 阅读的行数更少。 我将使用 explode 函数来拆分和提供每个图像文件链接。这是 明智的选择?我不确定 explode 函数是否像获取 大型数据库。我想听听您的意见。
看到问题是图像名称不是那么短,images_link 行设置为 27 个字符 所以我设置的每个相册限制为 30 张图片,因此预计单个单元格 稍后达到 810chars。我从来没有用过 varchar 来存储那么多字节,是 在这种情况下最好使用 VARCHAR 还是 TEXT ?我知道 VARCHAR 更快。
提前谢谢你。
最佳答案
你的第一个方案比第二个好。
更利于维护:
- 只加一行放一张新图片
- 只删除一行退出一张图片
- 如果你想编辑图片的路径你只需要更新 那一行……
稍后,如果您想列出画廊及其第一张图片,您只需执行 JOIN...
对于你的第二个模式,在类别表中有一个名为“list_of_images”的字段没有区别......
关于php - 如果我将详细信息行合并到标题表中的单个列中会更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771861/