[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