I'm trying to put together a database for annuity product information. In thinking through the structure, it seems like having 3 different content types is appropriate:
1) Carriers: A simple list of the insurance carriers offering annuities and their rating (e.g. A, B, C, etc.)
2) Products: These items would use nodereference to indicate which carrier is offering the specific product, and then several fields regarding various product features.
3) Rates: These are basically sub-items of #2 and would use nodereference to indicate the product (per #2 above), and then specific information pertaining to this specific variation.
So for example, we have Carrier A who offers Product B and C. Product B has three different variations of rate guarantees: 1 year, 3 years, and 5 years. Product C has guarantees of 1 year, 2 years, 3 years, 4 years, and 5 years.
So the plan right now is to use content type "Carriers" to add the name "Carrier A". Then content type "Products" to add "Product B" and "Product C" which both relate back to Carrier A via nodereference. And then I'd use content type "Rates" to specify the variations of Product B and Product C, actually creating 3 and 5 nodes respectively based upon the number of rate guarantee variations.
Then, all of this has to come together on the Views page where I want the user to be able to filter the view based upon fields from possibly each of the three different content types. For example, the user would filter:
* all carriers with a rating of A
* products that have a principal rate guarantee and nursing home withdrawal provision
* offering a 3 year rate of 2.5% or higher.
So the big question, am I doing this the right way using CCK and Views? Is there a better/easier way of doing this? Will I be able to achieve my necessary end result of the user filtering information based upon fields from each of the content types?
Thanks.
Comments
_
The short answer to the long question is yep, views can do this and does it well. ;-)
See http://gotdrupal.com/videos/drupal-views-relationships for more info.