3 가지 주요 부분으로 구성된 웹 앱으로 구성된 Rails에서 첫 번째 실제 프로젝트를 빌드하려고합니다.
- 데이터베이스가 사용되지 않는 정적 부분
- 데이터베이스가 필요하고 각 사용자의 행이 동일한 필드를 가지므로 MySQL을 사용할 수있는 사용자 등록 부분
- 사용자가 컬렉션의 항목을 생성, 구성, 편집하고 다른 사용자와 공유 할 수있는 "앱"
몇 가지 항목 유형이 있으며 각 항목마다 다른 옵션이 있습니다. 예를 들어 다음 옵션이있는 "비디오"항목이있을 수 있습니다.
- 신분증
- user_id
- collection_id
- 표제
- 플랫폼 (포함 된 경우)
- url (포함 된 경우)
- 파일 이름 (내 앱에서 호스팅 된 경우)
- 파일 크기 (내 앱에서 호스팅 된 ID)
및 "지도"항목 :
- 신분증
- user_id
- collection_id
- 표제
- 플랫폼 (구글 맵, 빙 맵 ...)
- 위치
- url
- 지도 크기
사용자가 할 수있는 것처럼 항목에 MySQL을 사용할 수 있습니다 .MongoDB의 유연성은 각 항목마다 다른 옵션이 필요할 수 있으므로 유용 할 수 있습니다.
지금까지 나는 항상 PHP와 MySQL (작은 프로젝트를위한 공유 호스팅)을 사용해 왔으며 확장 성은 완전히 새로운 단어입니다.
배울 시간이 있지만 1 개월 정도의 구체적인 일을하고 싶습니다.
MongoDB 및 NoSQL vs RDMS 및 MySQL에 대해 많이 읽었으며 그것을 시도한 후 MongoDB의 작동 방식을 좋아한다고 말해야합니다. 테이블, 행 및 문서 JSON과 같이 :
- 내 상황에서 당신은 무엇을 raccomend 하시겠습니까? 왜?
- 확장성에 대해 MongoDB에 문제가 있습니까? 그렇다면 (DB 크기 측면에서) 언제 이러한 문제로 인해 앱 속도가 상당히 느려질 수 있습니까?
편집 : 앱 작동 방식
많은 사람들이 이것이 앱이 어떻게 작동하고 싶은지 물었습니다.
- 사용자 가입
- 그는 로그인했다
- 그는 무한한 아이템을 만들 수있는 첫 번째 컬렉션 iside를 만듭니다.
- 항목은 다양한 유형이며 각 유형은 데이터베이스에 저장하기 위해 서로 다른 데이터가 필요하며 항목 유형은 추가 또는 수정 될 수 있습니다
사용자는 그 안에 다른 컬렉션과 항목을 만들 수 있습니다.
그래서 우리는 컬렉션과 그 안의 아이템에 대한 CRUD를 가지고 있으며 각 컬렉션 / 아이템은 특정 사용자에게 추천됩니다.
MySQL의 주요 문제점은 유연한 스키마가 아니라는 것을 해결할 수있는 방법이 있다는 것입니다 (해결 방법?).
NoSQL에 대한 유일한 의심은 조인에 관한 것입니다.
편집 : MySQL을 계속 사용하는 아이디어
"설정"테이블에서 선택적 설정으로 필드를 작성하십시오. 각 설정은 | 또는 다른 상징.
그런 다음 각 항목의 선택적 설정 구조를 어딘가에 저장합니다. 예를 들어 "notes"항목 유형에는 두 가지 선택적 설정 "colour"및 "strange_setting"이 필요합니다. MySQL에서 데이터를 가져올 때 선택적 설정 필드를 배열의 첫 번째 항목이 "색상"등임을 알고있는 배열.
어떻게 생각해? 그 솔루션에 문제가 있습니까? 다른 아이디어가 있습니까?