2011-02-13 5 views
1

나는 텍스트, 그림, 소리 등으로 스토리를 만들고 편집하기 위해 Android 스토리 텔링 앱을 작성 중입니다. 지금까지 이야기는 하나, 데이터베이스는 하나, 테이블 하나는 모두 정상적으로 작동합니다. 이제는 여러 이야기로 이동하여 이야기 당 하나의 표를 가진 단일 데이터베이스를 유지할지 또는 여러 데이터베이스를 보유할지 또는 데이터베이스 당 10 개의 표와 같이 두 개의 조합을 갖는지에 대해 생각하고 있습니다. 스토리지 서비스로 /로부터 스토리를 업로드/다운로드해야합니다.Android 앱에 여러 개의 테이블 또는 다중 dbs가 있습니까?

답변

3

확실하지 않지만 주요 문제는 기본 데이터베이스 구성표입니다. 한 이야기에 대해 만든 표를 별도의 표로 정규화 할 수 없다고 상상할 수 없습니다.

예를 들어 이야기 제목이 들어있는 이야기에 대한 표를 만듭니다. 텍스트와 사운드를위한 테이블과 필요한 모든 것보다. 이 테이블들 각각은 자신이 속한 이야기를 참조 할 수 있도록 외래 키를 가질 것입니다.

또한 스토리에 대한 별도의 데이터베이스 또는 테이블에 대한 생각의 문제를 해결해야합니다.

각 스토리에 대해 단일 데이터베이스를 사용하기로 결정할 때 모든 데이터베이스에서 데이터베이스 스키마 변경 사항을 처리해야한다는 점도 기억하십시오. 테이블에 하나의 열을 추가했기 때문에 10 개의 다른 데이터베이스를 업데이트해야 할 때 엉망이 될 수 있습니다.

0

다른 데이터베이스로 구분합니다. 나는 개발이 훨씬 쉬워 질 것이라고 생각한다. 예를 들어 onUpdate() 함수의 버전은 database-scheme의 각 변경 사항에 따라 증가해야합니다. 하나의 큰 데이터베이스가 있다면 버전이 빠르게 증가 할 것입니다.

  • 당신이 SQLiteOpenHelper() 각 데이터베이스에 대한 기능 (분할 과 정복을) 확장 할 수있는, 논리 파일에 코드를 분리하기 쉬울 것입니다.
  • 게임을 전환 할 때 간단히 데이터베이스 을 닫을 수 있습니다. 그리고 다른 데이터베이스를 엽니 다.
  • 하나 데이터베이스에 큰 변화가있는 경우는, 모든 것을 코딩의 서버에서 대신 에게 데이터베이스를 다운로드 당신이 별도의 데이터베이스가있는 경우 대역폭을 절약 할 수도 있습니다.
  • 런타임 중에 데이터베이스를 다운로드하려는 경우 모든 데이터베이스에는 다운로드 할 정보가 필요하며 SQLiteOpenHelper가 필요합니다.
  • 데이터베이스의 크기에 따라 (게임의 양) 데이터베이스에서 더 빨리 검색 할 수 있습니다.

하지만 저는 전문가가 아닙니다.이 디자인 결정에 반대하는 좋은 이유가있을 수 있습니다.

+0

Thanks Warren and Darokthar. 이 순간 나는 쉽게 가져 오기/내보내기를 위해 하나의 테이블에있는 이야기에 대한 모든 데이터와 함께 Warren의 제안 (동일한 DB의 개별 테이블)을 따르기를 원합니다. –

관련 문제