2014-04-16 2 views
0

MySQL 데이터베이스에 노래의 길이를 저장하는 가장 좋은 방법은 무엇입니까?MySQL 데이터베이스에 노래의 저장 기간

두 개의 테이블 앨범트랙이 있습니다. 앨범의 총 재생 시간을 계산할 수 있기를 원하지만 이 아닌앨범 테이블에 저장합니다.

트랙은 따라서 이것을 계산할 수 있도록 적절한 길이로 저장해야합니다. 모든 트랙 길이를 합산하여 '앨범 세부 정보'페이지에 표시하고 싶습니다. 정수로 저장하고 필요할 때 타임 스탬프로 변환하는 것이 가장 좋습니까? 아니면 시간 형식으로 데이터베이스에 직접 저장하는 것이 좋습니다.

답변

5

열을 저장하는 가장 좋은 방법은 사용 방법에 따라 다릅니다. 귀하의 질문은 귀하가 그 길이로 무엇을 할 것인지를 지정하지 않으므로 모든 응답은 대부분 추측입니다. 단위

  1. 저장 기간, 아마 부동 소수점 또는 십진수로 :

    여기에 몇 가지 옵션이 있습니다.

  2. 지속 시간을 datetime으로 저장하십시오. datetime에는 표준 시간대 정보가 없으므로 timestamp보다 바람직합니다.
  3. 지속 시간을 time으로 저장하십시오.
  4. 길이를 문자열 표현으로 저장하십시오.

"가장 좋은"방법은 무엇을 할 것인지에 따라 다릅니다. 출력 목적으로 길이로 저장하는 경우 (4)가 가장 좋은 방법 일 수 있습니다. 기간 값을 더하는 작업을 많이한다면, (1)이 가장 좋을 것입니다. 기간이 하루를 초과하면 (2) 최상의 것일 수 있습니다. 등등.

+0

고맙습니다. 옵션 1을 사용하여 모든 트랙의 합계를 계산하여 '앨범 길이'를 알려 드리겠습니다. – Mike

3

데이터를 필요로 할 때 duration을 float 형식의 초 단위로 저장하고 적절한 변환을 수행합니다. 이것은 노래 길이 등을 비교할 때 더 쉽게 쿼리를 만들 것입니다.

+0

초를 저장할 때'int '가 아닌'float'이 왜 필요합니까? – reformed

+0

@reformed 예, int가 더 잘 작동합니다. 위로 코멘트를 만들었을 때 int를 사용하는 것에 대한 생각이 내게 들리지 않았습니다. –

0

개인적인 취향에 맞을 것이라고 제안하지만,이 시간이 어떻게 사용될 것인지 고려할 수도 있습니다.

MySQL 및 기타 많은 프로그래밍 언어에는 타임 스탬프 및 날짜/시간과 함께 작동하도록 구축 된 멋진 기능이 있습니다. "이 앨범의 모든 노래 길이의 합계를 얻으십시오"또는 "평균 길이 구하기"와 같은 계산을 수행하는 경우 정수로 시간을 저장하는 것이 더 적합 할 수 있습니다.

응용 프로그램 (또는 웹 사이트)에서 시간 만 버리면 MySQL 시간 형식이 더 쉬울 수 있습니다.

관련 문제