[Data-modeling] /automotive domain evolution

Bryan Cheung bryan.cheung at metaweb.com
Tue Oct 7 17:23:58 UTC 2008


The /automotive domain was one of the first domains that was designed  
and has kind of been band-aided and denormalized as different schema  
challenges arose. Each time, we always said we should take a closer  
look at refactoring... well, now is the time. We're starting to get a  
lot more autos loaded, and we should refactor now before it becomes  
more painful later.

We don't have an accurate representation of a trim level. Trim level  
is a vehicle designation assigned by vehicle manufacturers that  
represent specific equipment packages (such as a Honda Accord LX or  
EX). Currently, properties that should belong trim level are part of  
the model_year type, which is incorrect. A model year should have  
multiple trim levels that will have different combinations of engine,  
driveline, transmission, fuel economy, etc.

To summarize the refactoring into a nutshell, we're going to add a new  
type trim level to model year and move model year properties to trim  
level.

/automotive/model_year
Move properties:
/automotive/model_year/body_styles --> /automotive/trim_level/body_style
/automotive/model_year/engines --> /automotive/trim_level/engines/engine
/automotive/model_year/transmissions --> /automotive/trim_level/ 
transmission
/automotive/model_year/drivelines_available --> /automotive/trim_level/ 
driveline
/automotive/model_year/exterior colors --> /automotive/trim_level/ 
exterior colors
/automotive/model_year/interior --> /automotive/trim_level/interior
/automotive/model_year/base_price --> /automotive/trim_level/msrp
/automotive/model_year/us_fuel_economy --> /automotive/trim_level/ 
us_fuel_economy
/automotive/model_year/options --> /automotive/trim_level/options
/automotive/model_year/option_packages --> /automotive/trim_level/ 
packages

/automotive/us_fuel_economy
Delete redundant properties:
/automotive/us_fuel_economy/body_style
/automotive/us_fuel_economy/engine
/automotive/us_fuel_economy/transmission
/automotive/us_fuel_economy/driveline

/automotive/automobile_trim_level
Move existing trim levels to new trim_level type and then delete type.

If there are applications that are using the auto schema, your queries  
will need to be updated.  I'd like to make these changes in the near  
future; if you need more time, please speak up.

Bryan


More information about the Data-modeling mailing list