首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在MySQL数据库中存储数组的最佳方法?

在MySQL数据库中存储数组的最佳方法?
EN

Stack Overflow用户
提问于 2012-02-15 19:09:33
回答 4查看 88.6K关注 0票数 26

我的应用程序的一部分包括歌曲的音量自动化。

卷自动化的描述格式如下:

代码语言:javascript
复制
[[0,50],[20,62],[48,92]] 

我认为这个数组中的每个项目都是一个“数据点”,第一个值包含歌曲中的位置,第二个值包含0-100的比例尺上的卷。

然后,我获取这些值并执行客户端的函数,将这些数据与“虚拟”数据点进行插值,以便创建一个bezier曲线,以便在播放音频文件时实现平滑的音量转换。

但是,需要允许用户将此自动化保存到数据库中,以便在稍后的日期召回。

数据点可以是无限的(但实际上不应该超过40-50左右,而大多数数据应该小于10)。

此外,我应该如何处理数据?它是否应该按原样存储在文本字段中?或者我应该事先以某种方式处理它,以获得最佳的结果?

在MySQL中最好使用什么数据类型来存储数组?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-15 19:15:42

肯定不是text字段,而是varchar --也许吧。我不建议解析结果并将它们存储在单独的列中,除非您想要利用数据库意义上的数据--统计等等。

如果你从来没有看到自己问“用户使用的平均音量是多少?”那就别费心解析它了。

要想弄清楚如何存储这些数据,请问问自己“以后我将如何使用它?”如果要获得数组并需要与PHP一起使用它,则可以使用serialize函数。如果您将使用JavaScript中的值,那么JSON编码可能对您最好(加上许多语言都知道如何解码)

祝好运!

票数 48
EN

Stack Overflow用户

发布于 2017-03-17 16:00:51

我建议您看看JSON数据类型。通过这种方式,您可以以比文本或varchar更有效的方式存储数组,并且可以直接从MySQL中访问数据,而无需解析整个过程。

看看这个链接:https://dev.mysql.com/doc/refman/5.7/en/json.html

票数 7
EN

Stack Overflow用户

发布于 2013-03-25 19:08:35

如果在检索行时速度是最重要的,那么就创建一个新的表,并使它专用于保存数组的索引。使用整数的数据类型,并让每行表示数组的索引。您必须创建另一个数字列,它将这些列绑定在一起,这样就可以使用SQL查询重新组装数组。

这样,您可以帮助MySQL帮助您加快访问速度。如果只想要数组的某些部分,只需更改SQL查询中的范围,就可以随意重新组装数组。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9299658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档