2011-08-28 3 views
0

Ruby on Rails 웹 사이트를 만들고 있습니다. 사용자는 턴테이블과 같은 제한된 아바타 세트에서 아바타를 가질 수 있습니다. 다시 Turntable.fm처럼 그들은 다른 레벨에서 다른 아바타를 선택할 수있는 사용 순위에 따라.ROR/Mysql 디자인 질문 : 아바타를 데이터베이스에 저장하는 방법

저는 비계를 사용하여 아바타를 만들려고합니다. 따라서 MVC가 필요합니다.

rails generate scaffold avatar file_name:string, level:integer 

(루비 전문가가 아닌 경우)) 따라서 내 아바타 mysql 테이블에는 id, file_name 및 레벨이 열로 포함됩니다.

또한 사용자 테이블에 avatar_id를 추가하십시오.

이 문제를 해결하는 올바른 방법이 궁금합니다. 방금 ​​BLOB에 대해 읽고 데이터베이스에 이미지를 저장하고 있었는데 그런 식으로해야합니까?

감사합니다. 미나

+1

데이터베이스에 이미지를 저장하는 것에 관해 몇 가지 질문이 있습니다. 일반적인 합의는 "해야만하지 않는 한 그것을하지 마십시오"입니다. –

답변

1

당신이 가지고있는 아바타 이미지의 수에 따라 다르지만, 수만개가 아니거나 권장하지 않는 것이 좋습니다. 그렇지 않으면 this question을 읽어야합니다.

또 다른 질문은 사용자 지정 아바타를 지원하기 위해 요구 사항이 크게 변경되는 경우를 대비하여 미래에 대한 증거를 갖고 싶습니까? 이 경우 테이블에 뭔가 더 필요한 파일이 저장 될 디렉토리의 경로를 말하십시오.

file_name 열이 필요한지 여부는 논란의 여지가 있습니다. avatar_id을 다음과 같이 사용할 수도 있습니다. 파일 이름. 어쩌면 아바타의 이름/레이블이 필요 하겠지만 파일 이름을 지정하지 않아도됩니다. 실제로 수행하지 않는 것이 가장 좋습니다 (특수 문자뿐만 아니라 특수 문자도 고려해야합니다)

그럼 이미 언급했듯이, 만약 당신이 거기에 어떤 이점이 있다고 생각한다면 당신은 데이터베이스 자체에 파일을 저장하려고 할 수 있습니다. (직접하지는 않을 것입니다. 그러나 이런 식으로 진행하기위한 유효한 프로 인수가 있습니다, here 토론을 참조하십시오) 주제에)

0

carrierwave을 사용하십시오. 사용하기가 매우 쉽고 강력합니다.

+0

필자는 기존의 아바타를 중심으로 한 디자인에 대해 더 많은 것을 의미했기 때문에 사용자가 자신의 이미지를 '업로드'할 수 없도록하고 싶습니다. – Matilda

관련 문제