mysql - MySQL如何处理每个用户的数据存储

标签 mysql

假设我的网站上有一个用户表。现在,如果我想制作一个用户可以上传一张图片的系统,它会是这样的:

enter image description here

但是如果我想制作一个用户可以上传无限数量图片的系统,我该如何实现呢?我是否需要为每个用户上传的每张图片创建一个列?但在那种情况下,不会是未使用的字段吗?示例:

enter image description here

此外,如果我想为照片制作相册,我该如何处理?谢谢!

最佳答案

处理此问题的最佳方法是为图像创建一个单独的表,但使用用户 ID 作为用户表的外键。

假设没有两个用户会使用相同的图像(这将是不同的情况),

你有你的用户表,就像你有(第一个),但只有 id 和用户。

您的第二个表看起来像这样,其中 imageID 是主键,而 UserID 是用户表 ID 的外键

imageID   UserID
   1         1
   2         1
   3         1
   4         2
   5         2

如果您想要相册,您可以创建另一个表,并将 albumID 作为主键,并将 imageID 作为该图像表的外键。如果您想要多对多关系,您还可以在该表中包含 UserID 并创建复合主键。这样相册仍然与用户相关联,但您可以让图像出现在多个相册中

关于mysql - MySQL如何处理每个用户的数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29441958/

相关文章:

由于引号,带有 DataTables 的 PHP 给出了无效的 JSON 响应

mysql - SQL - 选择其中具有特定值和其他随机值的列

mysql:找到最高平均分

sql - MySQL - Max() 返回错误结果

mysql - 提高 MySQL 查询性能

MySQL 全文索引搜索返回错误结果

javascript - JQuery 未读取 JSON 数组值

mysql - 传递 SQL 查询

python - mysql/python 连接器使用参数和字典在处理空值时死亡

php - 如何检查MySQL结果是否为空