2012-04-29 1 views
10

Tôi tò mò muốn biết ai sử dụng nhiều mô hình dữ liệu cốt lõi và tại sao, lợi ích là gì, tôi đang phát triển một ứng dụng mà tôi nghĩ rằng tôi có thể hưởng lợi từ nhiều mô hình, nhưng tôi không chắc chắn về các lợi ích khác.Tại sao tôi có thể muốn có từ 2 mô hình Dữ liệu chính trở lên?

Ứng dụng lên và sắp tới của tôi sẽ dành cho iPad và một phiên bản dành cho iPhone, iPad có 3 nội dung chính, iPhone chỉ có một trong đó cũng trên iPad, do đó cô lập điều này thành một mô hình dữ liệu cốt lõi khác nhau của mô hình đó trên hai ứng dụng của tôi sẽ dễ dàng hơn.

Mặc dù tôi có một số thực thể mà tôi sẽ cần trong cả hai, vì vậy tôi chỉ có thể sao chép chúng qua hoặc có một mô hình lớn.

Mọi đề xuất?

Dù sao, đây không phải là tình huống phổ biến, các trường hợp khác có thể dẫn bạn tạo nhiều mô hình Dữ liệu cốt lõi?

+0

cách thêm lớp mô hình mutilple? – harshitgupta

Trả lời

9

Đôi khi việc giữ các loại dữ liệu khác nhau ở các cửa hàng khác nhau có ý nghĩa. Ví dụ: một ứng dụng hoạt động như một danh mục sản phẩm có thể có một cửa hàng là cơ sở dữ liệu sản phẩm và một cửa hàng khác theo dõi các mục yêu thích, đơn hàng hiện tại và lịch sử của người dùng. Điều đó làm cho việc cập nhật cơ sở dữ liệu sản phẩm tương đối dễ dàng mà không ảnh hưởng đến dữ liệu của người dùng và sao lưu dữ liệu của người dùng mà không phải sao chép toàn bộ cơ sở dữ liệu sản phẩm.

Một trường hợp khác mà bạn muốn sử dụng nhiều cửa hàng là lưu trữ cùng một loại dữ liệu. Ví dụ, các ứng dụng dựa trên tài liệu thường sẽ tạo một cửa hàng riêng biệt cho mỗi tài liệu - cửa hàng có thể tài liệu.

Cập nhật: Những gì tôi đã viết ở trên địa chỉ sử dụng riêng biệt cửa hàng, nhưng bạn hỏi về việc sử dụng mô hình riêng biệt. Dữ liệu cốt lõi thực sự sẽ cho phép bạn xác định các mô hình riêng biệt và sau đó hợp nhất tất cả chúng lại với nhau trong thời gian chạy để sử dụng trong cùng một cửa hàng (hoặc nhiều cửa hàng, cho vấn đề đó). Vì vậy, chỉ cần rõ ràng, một mô hình xác định các thực thể và mối quan hệ giữa chúng. Cửa hàng là nơi dữ liệu được lưu thực sự bằng lược đồ được xác định trong mô hình. Bạn có thể phá vỡ một mô hình phức tạp thành nhiều mô hình nhỏ hơn để giữ cho mọi thứ đơn giản và trợ giúp trong việc di chuyển dữ liệu của bạn khi bạn sửa đổi mô hình theo thời gian hoặc bạn có thể sử dụng nhiều mô hình và giữ chúng riêng biệt vì bạn định sử dụng các cửa hàng khác nhau các loại dữ liệu khác nhau, như được mô tả ở trên.

+0

Bằng cách thêm các mục yêu thích vào mẫu A, bạn sẽ không tham chiếu một đối tượng trong mô hình B (mô hình sản phẩm)? – Daniel

+0

@Daniel Right - bạn không thể tạo mối quan hệ giữa các đối tượng trong các cửa hàng * khác nhau, vì vậy, bạn thường lưu đủ thông tin (ví dụ: mã sản phẩm) mà bạn có thể tìm thấy đối tượng bạn muốn một lần nữa. Xem bản cập nhật của tôi về sự khác biệt quan trọng giữa các cửa hàng và mô hình. Nếu các đối tượng trong câu hỏi là tất cả sẽ được lưu giữ trong cùng một cửa hàng, và nếu bạn cần phải tạo mối quan hệ giữa chúng, sau đó bạn nên đi trước và sử dụng một mô hình. – Caleb

2

Tôi khuyên bạn chỉ nên sử dụng 1 mô hình dữ liệu cốt lõi. Nếu bạn tách chúng ra, bạn sẽ không thể sử dụng nhiều tính năng của Dữ liệu cốt lõi, chẳng hạn như mối quan hệ (giữa các đối tượng trong kho dữ liệu), v.v. Ngay cả khi bạn không thấy nhu cầu ngay bây giờ, bạn có thể với ý tưởng để thêm vào ứng dụng sau đó cần nó.

Bạn vẫn có thể sử dụng cùng một mô hình dữ liệu cốt lõi cho cả iPad và iPhone, chỉ cần bỏ qua các phần bạn không sử dụng iPhone (cho đến khi bạn nhận được yêu cầu tính năng thêm các phần còn thiếu). Sau đó, bạn sẽ được tất cả các thiết lập và đã có sẵn dữ liệu.

Chỉ trong trường hợp cực đoan, bạn có thể sử dụng mô hình dữ liệu riêng biệt, ví dụ: nếu bạn định tải xuống tập dữ liệu hiện có chỉ đọc v.v. Bạn có thể tách tập dữ liệu chỉ đọc khỏi cài đặt người dùng/dữ liệu, v.v.

Chúc may mắn với ứng dụng!

+0

Để chỉ ra điều hiển nhiên, bạn chắc chắn có thể sử dụng các mối quan hệ khi bạn sử dụng nhiều cửa hàng; bạn không thể tạo mối quan hệ giữa các đối tượng trong các cửa hàng khác nhau. Tôi biết đó là ý của bạn, nhưng như được mô tả ở trên, tình hình có vẻ tệ hơn thực tế. – Caleb

+0

Cảm ơn, tôi đã chỉnh sửa nó rõ ràng hơn. –

+0

Vì vậy, trong trường hợp của tôi, tôi có một số thực thể để chia sẻ, Media là một trong số họ. Tôi có MediaVideo, MediaImage và MediaFile giữ uris từ xa và xử lý bộ đệm cục bộ của tệp thực, tôi muốn sử dụng lại các tệp này và không thể làm như vậy với nhiều mô hình nếu tôi hiểu chính xác – Daniel