MySQL - 在表中存储字符串数组

标签 mysql arrays

我有一个表,其中每行数据代表电影的放映事件,以图像库的形式向用户显示。

数据字段是:

id mainImage movie venue location date

每个放映事件是:

  • 一个 movie
  • 一次 venue
  • 一次 location
  • 在一个 date

..以及 mainImage 中的字符串是代表图库中第一张图像的图像的 URL。

我正处于十字路口,不知道应该如何为每次放映添加其余图像。我能想到两条可能的路线:

  1. 添加新列 imageArray这是一个字符串数组,每个字符串都是来自同一屏幕的图像的 URL。这些不必按任何特定顺序,所以我觉得这可能是一个非常好的选择。但这是做这样的事情的正确方法吗?
  2. 创建仅包含图像 URL 的单独表并以某种方式将它们连接到此表?这看起来不必要地复杂,但是这样的事情就是这样完成的吗?

..或者这种事情可以通过其他方式完成吗?

最佳答案

我认为您的数据非常适合以下两个表格:

event
id | movieId | venue | location | date

images
id | movieId | imageId | imageURL

此处的事件表与您最初的表基本相同。不过,我创建了一个单独的表来包含与每部电影相关的图像。

这只是一个建议,您的实际表定义可能需要更多信息。但需要明确的是,考虑为每个图像 URL 添加更多可能不是一个好主意。原因是您可能不知道将来需要多少个 URL。向表中添加更多列是一个很大的麻烦,但根据我的建议,向表中添加更多行相对容易。

关于MySQL - 在表中存储字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44213632/

相关文章:

mysql - 每行除以两列值相同的行的总和

java - 列出名称和出现次数

mysql - 默认情况下,Strongloop 环回应用程序是否使用多个进程?

java - 应用程序 Java 和托管 mysql

javascript - 将 map 函数链接到数组构造函数

c - 当此代码中数组大小未初始化时,为什么 gcc o 不发出警告?

arrays - 如何将整数数组转换为字符串?

C++ 错误 : Passing 'const' as 'this' array

mysql/node.js - 删除不存在的记录时抛出错误

mysql - 如何从Mysql中的时间间隔获取最小和最大日期时间?