2012-10-14 22 views
8

Tôi đang viết một ứng dụng cần lưu trữ dữ liệu. Một gói dữ liệu duy nhất là khoảng 4 lớp với nhiều phụ thuộc giữa chúng. Ví dụ, lớp A có một danh sách các đối tượng B và B có một danh sách các đối tượng C và ít phụ thuộc hơn nữa ...SQLite hoặc Serialization

Và tôi tự hỏi điều gì sẽ tốt hơn. Giữ chúng trong db SQLite hoặc tuần tự hóa từng gói riêng biệt và lưu trữ chúng trong các tệp được tuần tự hóa?

+4

Nếu có ai quan tâm đến việc sắp xếp tuần tự đã chọn: P –

+1

Bạn thực sự không nên sử dụng Serialization trong Android (http://stackoverflow.com/questions/3611843/is-using-serializable-in-android-bad). Tôi đề nghị bạn kiểm tra [GSON] (http://code.google.com/p/google-gson/). – m0skit0

Trả lời

3

Đối với tôi, giải pháp đúng duy nhất sẽ là lưu dữ liệu bên trong cơ sở dữ liệu đặc biệt là nếu có bất kỳ sự phụ thuộc nào. Đối với người mới bắt đầu, nó có thể khó khăn ngay từ đầu để bắt đầu tạo cơ sở dữ liệu. nhưng sau khi bạn đã tạo một cơ sở dữ liệu ở dạng đúng, bạn chỉ cần chèn dữ liệu và bạn sẽ không gặp bất kỳ vấn đề nào trong tương lai nếu bạn muốn thay đổi một cái gì đó hoặc mở rộng ứng dụng của mình. Với việc tuần tự hóa đơn giản, logic phải được giải quyết bên trong ứng dụng và có thể gây ra nhiều vấn đề hơn, đặc biệt nếu bạn có bất kỳ sự phụ thuộc nào.

Nếu bạn cần một hướng dẫn tốt để lưu dữ liệu, bạn nên nhìn vào hướng dẫn này http://thenewboston.org/watch.php?cat=6&number=111

Đối với các giải pháp khác nhau khác để lưu dữ liệu cũng có một số hướng dẫn trên trang web, Nr. 108 - 110 của lập trình Android

1

CNTT phụ thuộc vào việc sử dụng dữ liệu. Bạn có thể làm tốt việc chọn tuần tự hóa JSON/GSON và tránh chi phí làm ORM trên SQLite. (Overhead có nghĩa là mã hóa bổ sung cho marshall đến/từ db) Tuy nhiên, nếu dữ liệu của bạn phải chịu sự tăng trưởng hoặc thứ gì đó sẽ được quản lý tốt hơn bởi một db (nhiều truy cập không tuần tự hoặc ngẫu nhiên trên một tập dữ liệu lớn hơn) cho SQLite và ORM. Cuối cùng nó đi xuống đến loại dữ liệu bạn đang cố gắng quản lý. Một lần nữa nếu tập dữ liệu của bạn là cái gì đó có thể phát triển và liên quan đến rất nhiều truy cập ngẫu nhiên, nó có thể có giá trị bằng cách sử dụng SQLite.