Hi all, I've just discovered Rails coming from an asp.net background. I'm really into rails and I have started to develop an application to manage product data (specs, marketing info, etc). I am having some trouble designing the database to fit into the MVC paradigm and I was hoping someone might have a suggestion for me.
Here is my problem:
Let's say I have one table with generic product model info in it: Product Table: modelnum: upc: type: refrigerator, range, etc price:
I also need a specs table. The catch is every product type has a different set of spec attributes.
How do i design my database without having a huge spec's table full of unused colums, and logic in the view to display the appropriate spec fields.
I thought of perhaps using a table for each product type, but how would you make this association in the model without doing the following:
class Product < ActiveRecord::Base has_one :spec_type1 has_one :spec_type2 has_one :spec_type3 has_one :spec_type4
or generating sql strings to pull data from the correct table (which is something I would have probably done in asp)?
Alternativly I thought of representing specs with two tables. Specs_def would define all of the available specifications available, and encode each spec_attribute with a spec_type code. A second table would contain all of the spec entries, creating a list of spec_attribute/value pairs linked to the product by product_id.
This also seems wrong, and messy when dealing with creating and updating product information. I'm sure there is a better way.
Any ideas would be greatly appreciated.