php - 在 mySQL 列中存储随机大小的数组

标签 php mysql

我有一张 table 。它包含两列 unique songgenre。独特的歌曲存储一个字符串,并不重要。

Genres 包含一个字符串数组(适用于歌曲的流派),字符串中的元素数量是随机的(大到可以放弃数组并只增加额外的列)。

我知道这个设置在我设置的 mySQL 中不起作用,但这正是我需要的。

一种方法是序列化,但我非常希望能够查询所有摇滚歌曲,而不必先查询所有歌曲,反序列化,然后再找到我的匹配项。

由于所有数组内容都是同一类型,是否有支持这样输入的列? (int 在某种程度上是一个有限的整数数组,不是吗?)

最佳答案

您拥有多对多关系 - 一首歌曲可以有多种流派,多首歌曲可以使用一种流派。

创建一个名为 Song 的表,其中包含有关歌曲的信息和一些唯一标识符。为了争论,我们只说它是歌曲的名字:s_name。

创建一个名为 Genre 的表,其中包含有关流派的信息。也许您知道流派,以及有关它是什么音乐风格的一些信息。

最后,创建一个名为 SongAndGenre 的表,它将充当桥接表。它将有两列 - 歌曲 ID(在我们的示例中为 s_name)和流派 ID(例如,g_name)。如果歌曲 S 有多个流派 G1 和 G2,那么该歌曲将有两行 - (S, G1) 和 (S, G2)。

关于php - 在 mySQL 列中存储随机大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24317876/

相关文章:

php - Windows 更新警告 : Unknown: failed to open stream: No such file or directory in Unknown on line 0

php - 从 MySQL 数据库为 Doctrine 生成 YAML 模式或模型

mysql - 为什么 "<> Null"的行为与 “IS NOT NULL” 不同?

java - 从 PHP 向 Web 服务发送 HashMap 参数

c# - MySQL - 无法解析端口?

php - 我该如何着手创建这种性质的提交门户?

没有数据库的 PHP 标签系统(纯文本文件)

mysql - 如何创建 MySQL 的创建函数?

C# 动态 SQL INSERT ... SELECT

php - 尝试将数据输入mysql时出现几个错误