php - 正确设置我的 mysql 表

标签 php mysql database-design

我正在寻求一些有关如何最好地设置 mySQL 表的意见。

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

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

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

首先,我被告知这不是最佳实践。

此外,它还使得从网站上使用“删除”按钮的列表中删除单张照片变得相当冗长;我必须获取逗号分隔的列表,分解它,找到与我要删除的图像匹配的位并将其删除,将列表重新组合在一起,然后再次将其重新插入到同一字段中。

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

最佳答案

为什么不尝试使用照片表格来代替每张照片的一列:

TB_PHOTO id(整数) 路径(VARCHAR) userId(引用用户的表)

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

select path from TB_PHOTO where userId='?';

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

关于php - 正确设置我的 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009628/

相关文章:

php - 在准备好的语句中设置

c# - 如何使用数据 GridView (Winforms、C#)更新 MySQL 表?

sql - 在 delete 语句中忽略聚簇索引和覆盖索引。表扫描发生

sql - ERP 的最佳默认事务隔离级别是多少(如果有)?

php - 我应该直接从 View yii2 调用模型吗

php - 如何以 JSON 形式传输字典

javascript - FusionCharts 不工作

php - Codeigniter 分页在 Controller 中获取实际结果总计

MySQL - 连接两个具有别名并在其中连接的 SELECT 语句

database-design - 库的数据库架构