php - 如何在数据库中存储许多图像

标签 php mysql

我想知道如果我为每个用户存储图像,我是否必须为每个图像在数据库中创建一个字段?假设每个用户都可以上传 10 张图片,这是否意味着我必须在数据库中创建诸如 imagname 1 、 imagname 2 等字段?

最佳答案

当然不是。这不是关系数据库的用途。而是使用两个表:一个用于用户,一个用于图像。在 images 表中使用一列来存储用户表中的用户 ID。这样您就可以为每个用户存储任意数量的图像,并且您可以使用连接查询来查询所有图像。

所以像这样:

CREATE TABLE users (
  user_id int(11) auto_increment NOT NULL PRIMARY KEY,
  name VARCHAR(1024) NOT NULL
);


CREATE TABLE images (
  img_id int(11) auto_increment NOT NULL PRIMARY KEY,
  user_id int(11) NOT NULL,
  image blob
);

现在您可以使用如下方式获取用户图像列表:SELECT img_id FROM images LEFT JOIN users ON (images.user_id=users.user_id) WHERE users.name='some one';

关于php - 如何在数据库中存储许多图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14122800/

相关文章:

php - SQL 语句中文字前的冒号是什么意思?

php - 为什么我无法访问我的数据库?

php mysql 插入

php - 在 CSS 表上循环 mysql 表值

PHP preg_replace url 字符串

php - 预匹配 : and-not expression

php - in_array 在处理字符串时不能正常工作

php - Symfony 友好的购物车

mysql - MySQL中以下变量初始化风格有什么区别?

mysql - 使用 ExecuteDataset 调用带有输出参数的存储过程