Vehicle database design - Type, Make, Model, Vehicle
Why does 'type' have to be a separate table, and not just be an enum on 'model'? Then, when a user is doing a search of any type (via a dropdown or other method) it's just a filter on model (... where type = ANY( VALUES ('BOAT'), ('MOTORBIKE')) ...).