将歌曲的持续时间存储在MySQL数据库中的最佳方法是什么?
我有两张桌子,相册和曲目。我希望能够计算相册的总持续时间,但不将其存储在相册表中。
每个曲目因此应以适当的格式存储其长度,以便我可以计算出来。我希望能够将所有曲目持续时间相加,并在“专辑详情”页面上显示。最好将它存储为整数并在需要时转换为时间戳,还是以时间格式将其直接存储在数据库中更好/更好?
答案 0 :(得分:5)
存储列的最佳方法取决于您将如何使用它。因为你的问题没有说明你将对长度做什么,所以任何反应都是主要猜测。
以下是几个选项:
datetime
。这比timestamp
更可取,因为datetime
不包含时区信息。time
。“最佳”方法取决于您将如何处理它。如果为了输出目的而存储仅的持续时间,那么(4)可能是最好的方法。如果你要做很多加时间值,那么(1)可能是最好的。如果你的持续时间超过一天,那么(2)可能是最好的。等等。
答案 1 :(得分:3)
我会将持续时间存储为浮点格式的秒数,然后在需要数据时进行适当的转换。在比较歌曲长度等时,这也可以使查询更容易
答案 2 :(得分:0)
我建议这可以归结为个人偏好,但您可能还想考虑如何使用这些时间。
MySQL和许多其他编程语言都有一些很棒的功能,可用于处理时间戳和日期/时间。如果您可能正在进行计算,例如“获取此专辑中所有歌曲长度的总和”或“获得平均长度”,那么将时间存储为整数可能更有意义。
如果您只是将时间浪费在应用程序(或网站)中,那么MySQL时间格式可能会更容易。