Confused - Need help designing database for vehicles and aftermarket parts.
I'm running into a bit of trouble redesign my company website and database of products. I find myself constantly repeating work I've already done so I must be going about things incorrectly. I need a big of guidance so hopefully someone here can lend me a hand.
My plan is to redesign our website using the Django framework which uses python. I'll be using a mysql database. I planned to write the store front application by hand, however, I found a pretty good django app called Satchmo that seems to handle almost everything I need.
Here is the problem. We sell lots of products from vehicle computer software, full exhausts, fuel pumps, turbo kits, intakes, etc. Currently the store is broken down by vehicle company. So we have three stores: Porsche, Audi, and Volkswagen. Under each of those we have sub categories such as ECU upgrades, Exhausts, Turbo Kits, Other and so on.
The site was created back when the company started in the 90's. It's grown a bit out of control over time as we've created so many new products. Many of our products are cross platform. So, the description, photos, prices, etc so I can have a turbo kit that's exactly the same for a Volkswagen GTI 2.0T and an Audi A3 2.0T. Currently if there is a change on one page, I have to edit it twice! This is obviously not the way it should be which is why I've decided to store everything in a database rather than pure HTML.
I want to be able to create a product such as our 'brand new k04 turbo kit'. Then I want to throw that product into a group such as turbo kits. I also want to assign which vehicle it belongs to. So, I'd have another way to tag the exact vehicles the kit applies to. So it's almost like I'm making several different categories. I'm making Product categories, and Vehicle categories.
I guess I'm just looking for guidance. How would you guys go about it?
Just take your highest level component and start from there. Flow down to your next level then next then next... Then design your databases, what fields, what keys, triggers etc....
Take a big sheet of paper, I like drawing tablets cause I can erase a lot, and just have at it. Plus I like drawing it out first because I can make quick notes on the tablet. THE KEY THING IS: Get your data design right and you'll be a lot further along.
Then what I usually do is create a graphic image of my whole design, I use mindmanager cause its easy and fast.