mysql - 用于分组图像的 MySQL 解决方案?
问题描述
我正在寻找可以帮助我实现将多个图像作为一个组存储在 mysql 中的方法的人。
基本上,用户将上传多个图像,例如 3 个作为一个组(1 个 POST),我如何将它们存储在数据库中。
这就是我现在存储图像的方式。
+-------------+------------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+-------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| userid | int(11) | NO | | NULL | |
| uploaded_at | datetime | YES | | CURRENT_TIMESTAMP | |
| path | varchar(255) | NO | | NULL | |
| is_grouped | int(11) | YES | | 0 | |
| grouped_to | int(11) | YES | | 0 | |
+-------------+------------------+------+-----+-------------------+----------------+
'is_grouped' ( 0 or 1 ) & 'grouped_to' ( id of main image ) 虽然我可以工作,但在从 mysql 数据库检索时会导致问题。
任何帮助,将不胜感激。
解决方案
我不知道您当前的方法遇到了什么确切的问题,但我建议您只对images
表格使用以下定义:
images (id, user_id, uploaded_at, path)
然后,创建一个连接表,将图像与其组相关联:
image_groups (image_id, group_id)
我们不再需要该is_grouped
列,因为我们可以简单地检查image_groups
图像是否出现在一个组中和/或该组是否有多个图像。同样,该grouped_to
列现在已成为冗余,因为联结表存储此信息。请注意,您可能还需要一个groups
表,该表可以存储有关每个图像组的一些元数据,例如名称、创建时间等。
推荐阅读
- laravel - ErrorException 数组到字符串的转换 Laravel
- mysql - 将产品属性转换为标签
- reactjs - 即使列出了依赖项,也反应 useEffect 导致无限循环(使用 Firebase 实时数据库)
- c++ - 是变量初始化失败吗?
- java - Java 并发:是什么导致了对象发布的不安全性?
- reactjs - Material-UI 滑块 - 使用比例更改值
- c++ - AVL的中序遍历
> - vb.net - 在 datagridview 中将 12 小时格式更改为 24 小时格式
- angular - 在 Angular 8 中构建时出现 ngx-quill 错误
- android - 在 Android 6.0 中使用 Dagger2 初始化 Worker 时应用程序不断崩溃