2009-08-21 5 views
2

저는 현재 오디오 files.but에 대한 권장 시스템에서 일하고 있습니다.하지만 저는이 subject.i에서 초보자입니다. mysql을 사용하여 데이터베이스를 디자인하려고 시도하고 있지만 어떻게 할 것인지를 결정할 수 없습니다. 기본적으로 사용자가 프로필을 만드는 시스템입니다. 그런 다음 음악 및 시스템을 검색하여 좋아하는 음악을 추천합니다. 내가 사용해야하는 데이터베이스추천 엔진 데이터베이스 설계?

  1. ?
  2. 가 모바일 side.Which의 내가 사용해야하는 기술? (PHP, 안드로이드와 다음 또한 웹 프로젝트이며, (MySQL의 은 제 추측으로 내 마음을 온다) 플랫폼 ...)
  3. 이 프로젝트의 함정은 무엇입니까?
  4. 시스템 데이터베이스 설계 방법 그런가요?

답변

4

모든 관계형 데이터베이스 노래 목록, 사용자 목록, 사용자의 노래 환경 설정과 같은 원시 데이터를 저장하기위한 좋은해야한다 ..

나는 당신이 관계형 데이터베이스 (및 SQL)이 있음을 발견하고 있다고 생각 추천 작성자가 구성 할 다양한 데이터 구조를 저장하는 데 그리 좋지 않습니다. 추천 엔진은 실제로 테이블에 있어야 할 필요가없는 데이터를 생성하고 관계형 데이터베이스에 저장하기 위해이를 조작하는 것은 낭비 일뿐입니다.

잘못 생각하면 SQL 데이터베이스에 시간을 할애하지 않아도됩니다. 어쩌면 MongoDB과 같은 문서 지향 데이터베이스를 사용해보십시오.

내가 최근에 작성한 추천 기자는 실제로 MySQL의 원시 데이터를 읽고, 모든 작업을 메모리에서 수행하며, HTTP API를 통해 내 응용 프로그램에 권장 데이터를 제공하는 Java 서버 프로세스입니다. 추천 데이터를 재생성 할 수 있기 때문에 영구적으로 저장하는 것을 신경 쓰지 않았습니다.

3

음, 이것은 막연한 질문 반,하지만 난 대답을 내 최선을 다하겠습니다 :

  1. MySQL은 고체 데이터베이스입니다, 그래서 PostgreSQL입니다. 둘 다 자유롭고 오픈 소스입니다. MySQL은보다 광범위하게 지원되고 사용하기가 좀 더 쉬워졌지만, Postgres는 방황하는 가치가있는 아주 멋진 기능과 기능을 가지고 있습니다. WikiVS은이 둘을 잘 비교합니다.
  2. 스마트 폰의 브라우저 성능이 향상되었습니다. PHP 또는 ASP.NET을 사용하고 (더 편한 편) 작은 해상도에서 더 잘 보이는 모바일 사이트를 구축하십시오.
  3. 많이 있습니다. 가장 먼저, 권장 알고리즘은 얼마나 좋은가요? 둘째, 오디오 파일을 저장하면 저장 공간을 빠르게 소모 할 수 있습니다. 스케일링에 대한 계획은 무엇입니까? 셋째, 데이터베이스 디자인을 얼마나 잘 알고 있습니까? 크고 무거운 데이터베이스를 디자인하고 적절하게 색인을 생성 할 수 있습니까? 그렇지 않다면, 당신은 인덱스와 데이터베이스 디자인에서 할 수있는 모든 것을 읽기 시작할 필요가 있습니다. 넷째, 소프트웨어 프로젝트이며, 항상 함정이 있습니다. 여러분이 할 수있는 최선의 방법은 문제가 발생했을 때 게시하는 것입니다. 우리는 StackOverflow의 훌륭한 사람들이 무엇을 도와 줄 수 있는지 항상 볼 수 있습니다.
+0

나는 실제 오디오 파일을 데이터베이스에 저장하지 않고 오디오 파일의 참조를 저장합니다. –

+0

@Burak : 그들은 여전히 ​​같은 양의 저장 공간을 사용합니다. – Eric

4

"Programming Collective Intelligence"로 이동하십시오. 그들은 제 2 장 "권장 사항 작성"에서 권장 사항을위한 많은 훌륭한 알고리즘을 가지고 있습니다.

+0

나는 그 책을 가지고있다. 나는 그것이 이론적 인 책이 될 것이라고 기대한다.하지만 그렇게 생각하지는 않는다. 저자는 정말로 좋은 예를 사용한다. –