在MySQL数据库中存储歌曲的持续时间

时间:2014-04-16 23:16:32

标签: mysql time

将歌曲的持续时间存储在MySQL数据库中的最佳方法是什么?

我有两张桌子,相册曲目。我希望能够计算相册的总持续时间,但将其存储在相册表中。

每个曲目因此应以适当的格式存储其长度,以便我可以计算出来。我希望能够将所有曲目持续时间相加,并在“专辑详情”页面上显示。最好将它存储为整数并在需要时转换为时间戳,还是以时间格式将其直接存储在数据库中更好/更好?

3 个答案:

答案 0 :(得分:5)

存储列的最佳方法取决于您将如何使用它。因为你的问题没有说明你将对长度做什么,所以任何反应都是主要猜测。

以下是几个选项:

  1. 以单位形式存储持续时间,可能是浮点数或十进制数。
  2. 将持续时间存储为datetime。这比timestamp更可取,因为datetime不包含时区信息。
  3. 将持续时间存储为time
  4. 将持续时间存储为字符串表示形式。
  5. “最佳”方法取决于您将如何处理它。如果为了输出目的而存储的持续时间,那么(4)可能是最好的方法。如果你要做很多加时间值,那么(1)可能是最好的。如果你的持续时间超过一天,那么(2)可能是最好的。等等。

答案 1 :(得分:3)

我会将持续时间存储为浮点格式的秒数,然后在需要数据时进行适当的转换。在比较歌曲长度等时,这也可以使查询更容易

答案 2 :(得分:0)

我建议这可以归结为个人偏好,但您可能还想考虑如何使用这些时间。

MySQL和许多其他编程语言都有一些很棒的功能,可用于处理时间戳和日期/时间。如果您可能正在进行计算,例如“获取此专辑中所有歌曲长度的总和”或“获得平均长度”,那么将时间存储为整数可能更有意义。

如果您只是将时间浪费在应用程序(或网站)中,那么MySQL时间格式可能会更容易。