我想知道是否要为每个用户存储图像,是否必须为每个图像在数据库中创建一个字段?让我们假设每个用户将被允许上传 10 张图片,这是否意味着我必须在数据库中创建像 imagname 1 、 imagname 2 等字段?
最佳答案
当然不是。这不是关系数据库的使用方式。而是使用两张表:一张用于用户,一张用于图像。在图像表中,使用一列将用户 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 - 如何在db中存储许多图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14122800/