A Product can have lots of things said about it, I'll call them Properties. It can have a brief description. But that description can be in multiple languages. Likewise, it can have multiple Prices, some which are specific to Customers. Given the following data:
Product:
identifier: 123-ABC
Price:
value: $1.25
currency: USD
customer: Wal-Mart
Price:
value: $1.96
currency: USD
Description:
short: "A Widget"
language: EN
Description:
marketing: "Made from Space Age Polymers."
language: EN
Does it make sense to use STI here, and make a generic set of models:
Product has_many Properties
Property has_many Attributes
Price < Property
Description < Property
Package < Property
Is this way too broad of a generalization in the data model? Should I just stick with regular models and their associated tables?