Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        6年前关闭。
                                                                                            
                
        
我正在寻求有关如何最好地设置mySQL表的一些意见。

该表是存储有关发布到我的网站上的广告信息的表。大多数列都很简单,并且包含所有常规信息,例如价格,提交者的用户ID,提交日期等。

我遇到问题的部分是照片。可以将任意数量的照片添加到广告中,从最少1张到可能无限张(尽管我会在某个时候将其设置为上限,但实际上最多可以增加40张)。

目前,我有1个“照片”列,其中存储了所有照片路径,以逗号分隔。

首先,有人告诉我这不是最佳实践。

此外,它还使得在站点上使用“删除”按钮删除列表中的单张照片的时间相当长。我必须获取逗号分隔的列表,将其爆炸,找到与要删除的图像匹配的位并将其删除,然后将列表放回原处,然后再次将其重新插入同一字段中。

大概答案是每张照片的列,以某种方式根据需要动态创建?但是我不确定这将如何工作,就添加一列的代码而言(通过php插入),而且,一行可能有30张照片,而另一行只有1张照片,因此具有1行的行将有29张空白列?这不好吗?

最佳答案

除了为每张照片创建一列之外,为什么不尝试使用一张照片表:

TB_PHOTO
ID(INT)
路径(VARCHAR)
userId(参考用户表)

然后,您可以检索照片以及所需的所有照片的数据。例如

select path from TB_PHOTO where userId='?';


然后,您将获得属于特定用户的所有照片。

10-06 05:16
查看更多