Php MYSQL-文件名的字段类型?
为了了解我的数据库,在我的应用程序中的某个点上,用户可以上传一张(或多张)照片。我的朋友告诉我,使用文件名比使用一堆文本要好。我应该使用varchar还是varbinary 此外,如果用户要上传更多图片(假设最大值为10),那么为图片创建一个表和一个连接表(如userspictures)会更好吗?还是最好将所有图片存储在一个字符串中,并用逗号或类似的符号分隔Php MYSQL-文件名的字段类型?,php,mysql,database,database-design,Php,Mysql,Database,Database Design,为了了解我的数据库,在我的应用程序中的某个点上,用户可以上传一张(或多张)照片。我的朋友告诉我,使用文件名比使用一堆文本要好。我应该使用varchar还是varbinary 此外,如果用户要上传更多图片(假设最大值为10),那么为图片创建一个表和一个连接表(如userspictures)会更好吗?还是最好将所有图片存储在一个字符串中,并用逗号或类似的符号分隔 非常感谢您的帮助。正如您的朋友所说,最好只在数据库中存储文件名。 我建议VARCHAR(255) 我建议您为多个文件创建另一个表: 创建表
非常感谢您的帮助。正如您的朋友所说,最好只在数据库中存储文件名。 我建议
VARCHAR(255)
我建议您为多个文件创建另一个表:
创建表格照片(
id整数无符号自动递增,
用户id为无符号整数,
filename VARCHAR(255)UNIQUE不为空,
主键(id)
);
从照片中选择id,filename,其中user\u id=[user\u id]
将所有图片存储在逗号分隔的字符串中会违反第一个标准格式,这会导致查询效率低下。您必须将数据简化为原子形式,因此在这种情况下,始终形成一个单独的表来存储单个数据项。您应该在数据库中使用图像文件名和varchar
数据类型,而不是blob
,因为blob
(二进制大对象)数据类型用于存储大量二进制数据。将图像保存在服务器上,并将图像名称传递给数据库。您可以为多个文件创建另一个表,这很好。谢谢您,我非常感谢您的快速回答!顺便说一句,我还在主键中添加了未签名和自动增量。不客气。如果你觉得我的答案有用,你可以把它标为接受。更多信息请参见这里:是的,谢谢你的回答。我想我需要重读规范化。谢谢你,我感谢你的快速回复:)@cupidvogel:我想对你说一句话。可能是重复的