MySQL解决方案的分组图像?

时间:2018-10-18 05:34:42

标签: mysql sql database mysql-workbench

我正在寻找可以帮助我实现将多个图像作为一组存储在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或1)和'grouped_to'(主映像的ID)是我虽然可以正常工作,但在从mysql数据库检索时却引起了问题。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不知道您当前的方法有什么确切问题,但是我建议仅对images表使用以下定义:

images (id, user_id, uploaded_at, path)

然后,创建一个联结表,将图像与它们的组相关联:

image_groups (image_id, group_id)

我们真的不再需要is_grouped列,因为我们只需检查image_groups即可查看该图像是否出现在一个组中和/或该组中是否有多个图像。同样,grouped_to列现在已变得多余,因为联结表存储了此信息。请注意,您可能还需要一个groups表,该表可以存储有关每个图像组的一些元数据,例如名称,创建时间等。