我想将 SoundCloud 中的曲目播放列表存储在 mySQL 表中。
我想知道我是否可以有一张桌子:
- 播放列表 ID
- 播放列表名称
- 轨道阵列
该数组是一个 JSON 字符串,包含所有曲目 ID 及其播放顺序。
这将节省 mySQL 表方法的空间,我不会在播放列表表中存储数组,而是为存储的曲目创建另一个表:
- 曲目编号
- 播放列表 ID
- 跟踪订单价值
JSON字符串存储是个好主意吗?
谢谢
我想将 SoundCloud 中的曲目播放列表存储在 mySQL 表中。
我想知道我是否可以有一张桌子:
该数组是一个 JSON 字符串,包含所有曲目 ID 及其播放顺序。
这将节省 mySQL 表方法的空间,我不会在播放列表表中存储数组,而是为存储的曲目创建另一个表:
JSON字符串存储是个好主意吗?
谢谢
你有什么理由担心性能吗?从它的声音来看,您只需要几个表并且可能不会存储数千行。MySQL 在如此少的使用量下会表现得非常好。就个人而言,我说要为 RDBMS 准确地建模您的数据,并且只有在您真正开始遇到性能问题时才担心性能。通过准确地对数据建模,您可以解决其他人谈论的关于搜索曲目的问题。它还可以很容易地查看特定曲目所在的播放列表。我会在表格中使用它:
播放列表
追踪
播放列表曲目
在出现性能问题之前尝试防止性能问题几乎总是一个坏主意。谁说编码/解码 JSON 表示不会比 MySQL 慢?如果潜在的性能问题实际上并不存在,为什么要放弃准确建模数据的增强功能呢?
我看到将曲目信息存储在单个 json 字段中的直接缺陷是您将无法轻松搜索。您将需要在很可能没有良好索引的大字段上使用“LIKE”操作。字母数字索引对它们有长度限制。我认为它是 255 个字符,但您可能需要验证它。这也意味着无论您用作索引的多少字符都必须是唯一的,但是使用 json,您将在字符串开头的编码开销中占用大量空间。
如果您不打算在播放列表中进行搜索,我想这还不错。NoSQL 摇滚 :)