2012-10-14 13 views
8

Piszę aplikację, która musi przechowywać dane. Pojedyncza paczka danych to około 4 klasy z wieloma zależnościami między nimi. Na przykład klasa A zawiera listę obiektów B i B zawiera listę obiektów C i kilka innych zależności ...SQLite lub Serializacja

I zastanawiam się, co byłoby lepsze. Przechowuj je w SQLite db lub serializuj osobno każdy pakiet i przechowuj je w plikach seryjnych?

+4

Jeśli ktoś ma ochotę wybrałam serializację: P –

+1

Powinieneś naprawdę [nie używać szeregowania w systemie Android] (http://stackoverflow.com/questions/3611843/is-using-serializable-in-android-bad). Sugeruję sprawdzenie [GSON] (http://code.google.com/p/google-gson/). – m0skit0

Odpowiedz

3

Dla mnie jedynym właściwym rozwiązaniem byłoby zapisanie danych w bazie danych, szczególnie jeśli istnieją jakieś zależności. Dla początkujących może być trudno na początku dostać się do tworzenia bazy danych. ale po utworzeniu bazy danych w odpowiedniej formie wystarczy wstawić dane i nie będziesz mieć żadnych problemów w przyszłości, jeśli chcesz coś zmienić lub rozwinąć aplikację. Dzięki prostym serializacji logika musi zostać rozwiązana w aplikacji i może powodować więcej problemów, szczególnie jeśli masz jakieś zależności.

Jeśli trzeba mieć dobry poradnik dla zapisywania danych należy spojrzeć na tym kursie http://thenewboston.org/watch.php?cat=6&number=111

Dla innych różnych rozwiązań do zapisywania danych jest też kilka tutoriali na stronie internetowej, Nr. 108 - 110 programowania w systemie Android

1

IT zależy od sposobu wykorzystania danych. Możesz zrobić dobrze wybierając serializację JSON/GSON i uniknąć narzutu na wykonywanie ORM przez SQLite. (Overhead oznacza dodatkowe kodowanie do przesłania do/z bazy danych) Jednakże, jeśli twoje dane podlegają wzrostowi lub czemuś lepiej zarządzanym przez db (dużo niesekwencyjnego lub losowego dostępu przez większy zbiór danych), dla SQLite i ORM. Ostatecznie sprowadza się to do rodzaju danych, którymi próbujesz zarządzać. Znowu, jeśli twój zestaw danych jest czymś, co może się rozwijać i wymaga dużej ilości dostępu losowego, warto skorzystać z SQLite.