Thank you all for answering and guiding me with the design. I wanted
to know whether multiple tables can be part of a content provider. I
have one database and my requirement is to share the DB across
application and hence the Content Provider.

And after normalizing my tables, I realize a single content provider
will be sufficient to handle all the tables in my db. Though I am
struggling a little with URI matching concept, so trying some code
like NoteList example. Once I run my own code, may be i will
understand better.

Thanks for the info, it help me a lot with the design.

Regards,
Arpit

On Aug 24, 10:51 pm, "A. Elk" <[email protected]> wrote:
> There are two considerations: database design and application design.
>
> Database design is much too big of a topic to summarize in a single
> thread! But in short, one wants to normalize the data and do joins to
> combine data from different tables.
>
> Application design in Android suggests that a ContentProvider isn't
> necessary for private data. Basically, if you don't want to let other
> applications look at your data (or modify it, or delete it) by
> themselves, then you don't really need a ContentProvider. Of course,
> you can have one if you want. You lose a bit of security, since the
> data becomes "public", although you can keep pretty much private by
> using an obscure URI.
>
> Also, it's best to have one database per ContentProvider. If you find
> yourself trying to associate more than one database with the same
> ContentProvider, your design may be suspect. Remember that a single
> database can contain address data, book data, and people data, if the
> domain is library management. On the other hand, you may choose to use
> the built-in Contacts provider for people/address and your own
> ContentProvider for books.
>
> In short, there's no one answer, except that you aren't limited to one
> table per ContentProvider, one database per ContentProvider, or one
> ContentProvider per Android application. A ContentProvider has some
> overhead, but I'd opt for one per database rather than worry about the
> overhead.
>
> On Aug 24, 9:17 am, Kostya Vasilyev <[email protected]> wrote:
>
>
>
> >   A ContentProvider is queried (and updated) using a URI, which
> > specifies the kind of data to work with. This might look like this:
>
> > content://<provider>/counties
> > content://<provider>/counties/<country_id>
>
> > content//<provider>/counties/<country_id>/cities
> > content//<provider>/counties/<country_id>/cities/<city_id>
>
> > Or even like this, in addition to the above:
>
> > content://<provider>/books
> > content://<provider>/books/<book_id>
>
> > A helper class, UriMatcher, can be used in ContentProvider
> > implementation to quickly and easily determine what kind of data a
> > request URI refers to - whether it's counties, or cities, or a country
> > by its id (in the examples above).
>
> > One the kind of data that the URI refers to is known, it's quite logical
> > to store each kind of data in its own table (e.g. country / city).
>
> > I also think it makes sense to implement separate ContentProviders for
> > unrelated sets of data.
>
> > In the example above, if you're not linking books to cities, you might have:
>
> > content://name.Arpit.GeographyData/counties
> > content://name.Arpit.GeographyData/counties/1
> > content://name.Arpit.GeographyData/counties/1/cities
>
> > ...etc... and:
>
> > content://name.Arpit.Library/books
> > content://name.Arpit.Library/books/1
> > content://name.Arpit.Library/books/2
>
> > -- Kostya
>
> > 24.08.2010 20:01, Arpit пишет:
>
> > > Hi All,
>
> > > All the example codes, tutorials or video I see, there is always one
> > > ContentProvider per SQL Table with the SQLiteOpenHelper extension
> > > defined as a private static class...
>
> > > Is it some sort of standard design...to have one ContentProvider per
> > > SQL Table? Or I can define one generic ContentProvider and use its
> > > instance for ever update?
>
> > > Is there some issue with that?
>
> > > Could anyone please help as my application has like 5-6 tables.
>
> > > Regards,
> > > Arpit
>
> > --
> > Kostya Vasilev -- WiFi Manager + pretty widget 
> > --http://kmansoft.wordpress.com

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to