Basic Drupal site architecture based on taxonomy
You'll need to use Fields and some modules to do this but it looks like you already have the understanding on how to get started.

Fields are basically properties that can be used to extend Drupal entities. You can add Fields to your Content Types and your Taxonomy Vocabularies to include extra properties not available out of the box.

Any Fields that you want associated with your Node, add them to the Node Type. Any Fields you want associated with a Taxonomy Vocabulary, add them to the Taxonomy Vocabulary. And in the end, make sure everything is rendered correctly in your theme.

As soon as you associate a Node with a Taxonomy Term, Drupal already provides a way to display all Nodes associated with a specific Taxonomy Term. If you navigate to /taxonomy/term/TERM_ID you'll see what I mean.

If you want to modify that page, I would start looking into Views and Panels which are arguably the building blocks of any Drupal site. It is important to note though that Views and Panels are usually not used to create new content but rather to query and display, respectively, existing content.

For the URL structure you mentioned, look into the Path and PathAuto modules. They provide a way to generate URLs based on a pattern.

So, for your example, if you want a URL /BMW to show all Nodes tagged with the BMW Taxonomy Term, those two modules will get the job done for you.

So what's the best approach? It depends on your site's content. From your question:


Index Page: Classic use case for a view that takes an argument from a
URL. In this case, a Taxonomy Term. You can choose to filter on
specific Node Types, Taxonomy Terms, etc.
Model Page: Simple Node. Create a field on it's Node Type to
associate it with the appropriate Taxonomy Vocabulary. You can also use Views to pull      related content, which from your description is what you need here. There are also a lot of modules that can help with this.
Article Page: Same as above.


Good Luck!