0

我想将 SoundCloud 中的曲目播放列表存储在 mySQL 表中。

我想知道我是否可以有一张桌子:

  • 播放列表 ID
  • 播放列表名称
  • 轨道阵列

该数组是一个 JSON 字符串,包含所有曲目 ID 及其播放顺序。

这将节省 mySQL 表方法的空间,我不会在播放列表表中存储数组,而是为存储的曲目创建另一个表:

  • 曲目编号
  • 播放列表 ID
  • 跟踪订单价值

JSON字符串存储是个好主意吗?

谢谢

4

3 回答 3

2

你有什么理由担心性能吗?从它的声音来看,您只需要几个表并且可能不会存储数千行。MySQL 在如此少的使用量下会表现得非常好。就个人而言,我说要为 RDBMS 准确地建模您的数据,并且只有在您真正开始遇到性能问题时才担心性能。通过准确地对数据建模,您可以解决其他人谈论的关于搜索曲目的问题。它还可以很容易地查看特定曲目所在的播放列表。我会在表格中使用它:

播放列表

  • 播放列表 ID
  • 播放列表名称

追踪

  • 跟踪 ID
  • 曲目名称

播放列表曲目

  • 播放列表 ID
  • 跟踪 ID
  • 跟踪订单

在出现性能问题之前尝试防止性能问题几乎总是一个坏主意。谁说编码/解码 JSON 表示不会比 MySQL 慢?如果潜在的性能问题实际上并不存在,为什么要放弃准确建模数据的增强功能呢?

于 2012-03-16T18:15:03.243 回答
1

我看到将曲目信息存储在单个 json 字段中的直接缺陷是您将无法轻松搜索。您将需要在很可能没有良好索引的大字段上使用“LIKE”操作。字母数字索引对它们有长度限制。我认为它是 255 个字符,但您可能需要验证它。这也意味着无论您用作索引的多少字符都必须是唯一的,但是使用 json,您将在字符串开头的编码开销中占用大量空间。

于 2012-03-16T18:08:20.877 回答
0

如果您不打算在播放列表中进行搜索,我想这还不错。NoSQL 摇滚 :)

于 2012-03-16T18:03:25.693 回答