2011-07-30 2 views
0

android-app 프로그래밍 할 제품의 데이터베이스가 150-250 개라고합니다. 각 항목에는 이름, 비용, EAN 번호 등과 같은 속성이 있습니다.항목 데이터베이스를 저장, 기록 및 읽는 가장 효율적인 방법입니다.

첫 번째 아이디어는 앱이 시작될 때로드 된 XML 파일에 모든 것을 저장 한 다음 제품의 배열 /지도에 채워 넣는 것입니다. 제품은 목록보기에서 볼 수 있어야하며 사용자는 앱을 통해 이러한 제품을 더 추가 할 수 있어야합니다. 대부분의 속성은 거의 변하지 않지만 그 중 일부는 항상 변경됩니다. 제품 배열과 xml 모두에서 속성을 변경 한 다음 XML 파일 eveytime에 다시 변경하는 것이 좋은 아이디어인지는 모르겠습니다. 어쩌면 직렬화가 더 나은 선택일까요? 어느 쪽이든 파일을 변경할 때마다 기록 할 필요는 없다고 생각하지만, 앱이 닫히거나 간격을두고있을 때처럼 할 수 있다고 생각합니다. 모바일 앱 개발 및 데이터 손실을 원하지 않습니다.) "정적"속성과 "동적"속성을 어떤 식 으로든 구분하는 것이 좋습니다.

나는 여기서 매우 분실했습니다. 좋은 방법이 무엇이 될지에 대한 제안이 있습니까?

stackoverflow와 google에서 주변을 검색했지만 실제로 유용한 정보를 찾을 수 없었습니다.

답변

2

항상 액세스 할 수있는 구조화 된 데이터는 XML 파일이 아닌 SQLite 데이터베이스에서보다 잘 처리됩니다. XML 경로를 탐색하는 경우 데이터를 구문 분석, 쿼리 및 저장하는 데 필요한 모든 코드를 작성해야합니다. 데이터베이스를 사용하면 이러한 함수의 대부분이 작성하는 코드가 훨씬 적어지며 효율성이 높아집니다. 또한 버그 가능성이 적습니다. 메모리 내 XML 표현에 대한 변경 사항을 언제 실제 파일에 적용할지 생각할 필요가 없습니다.

나는 강하게 당신 data storage에 기사를 읽고 당신이 생성, 업데이트 및 데이터베이스를 조회하고 ListView과 통합 할 필요가있는 모든 기술을 보여줍니다으로도 Notepad Tutorial 보는 것이 좋습니다.

많은 연구와 같이 보일지 모르겠지만 XML 파일로 백업 된 자체 저장 장치를 사용하는 대신 내장 SQLite를 사용하면 훨씬 유연하고 버그가 없습니다.

3

SQLite 기반 ContentProvider을 사용해야합니다. 이렇게하면 다른 구성 요소 (활동 또는 서비스)와 독립적으로 제품을 업데이트 할 수 있습니다. 모든 체포 당사자는 날짜가 변경되면 알림을받을 수 있습니다.

또한 ListView에 ContentProviders (CursorAdapter 통해)에 대한 지원이 있으며 Loaders (CursorLoader 통해)의 무료 지원을받을 수도 있습니다.

그 외에도 데이터를 더 효율적으로 저장할 수 있습니다 (즉, 저장시마다 xml 파일을 다시 작성할 필요가 없음). SQLite는 매우 효율적이고 강력한 방법으로 모든 변경 사항을 저장하는 데주의를 기울입니다.

관련 문제