While I was at work pondering what other better careers there might be out there, I decided that I probably should make sure my skills are up-to-date. Since I am limited to what software I have installed on my home PC, I will be brushing up on those skills and learn some new ones in the process. The best way for me to learn something is to actually have something to do, instead of just reading through a book and trying to absorb it. I’ve absorbed plenty of useless facts by reading, but that doesn’t beat actually putting to work knowledge that has been gained.
I plan on going through the Flex/Flash Builder and attempt to use as many features as possible. In order to do this, I’ll need to have something things setup to show what I create in action. Beyond having a website available to do this, the first step is to setup a empty database and tables on the site, so I can input data and retrieve data. I’ll use Google Docs – Drawing to map out the basic database and post it below. It’s not exactly a database mapper, but it is free and pretty simple to use. I’ve embedded the published page, so if I make updates, it should update what is seen below.
To keep things simple, I’ll just create a 3 table database for now. A Customer, Address and Contacts table. By not including the address or any contact information in the Customer table, I can create multiple contacts types and addresses for each customer. For example, if the customer has an e-mail, main phone and cell phone as methods of contacting, then I would have 3 entries in the Contact table for the one customer. Later, I should add a boolean value to determine which of the Contacts is the primary and make sure the method of input verifies only one Contact is selected. Like wise for the Address. The address could be the physical, delivery, billing or another type of address. If it is the physical address, I will probably want to add Latitude and Longitude information, in order to connect any map tools. And, I will need to added a primary flag as well. I added a Nickname field in order to give the location a name relative to it’s purpose. An example of this is a customer with multiple satellite locations. You still have the one customer, but there are multiple physical addresses. Most likely, in real world situations, the customer would have multiple customer accounts for each of the physical locations. I’m sure a debate would be endless on the merits of both.
Another thing to consider is the Type values. Some would probably argue that the proper way to handle the types is to create a table for the Types and use the ID in the Customer, Contact and Address tables. Of course, this would also require setting up a table to determine which types would go into the corresponding list value. This is why you map out your database before you start creating it. Which I didn’t, but since I don’t have any data in my database, I can easily change the column types. I could have made it even more lose on the tables and called the Customer table something like Human and allowed it to be any type of Human that will be using the application, but I think that is fine. The only issue is, that the Address and Contact tables are actually just Customer Address and Customer Contact.
I am using MySQL 5 for my database, because that’s what comes with my website. The site also uses Perl 5 and PHP 5, so I will be using PHP for any back end scripting that I need. Since I have Dreamweaver installed, I plan on creating a demo site using that, instead of just adding pages inside of my WordPress blog. This will also give my wife the opportunity to see how Dreamweaver works. I would like to figure out some skinning for Flex, so I will use Fireworks and possibly Flash Professional for that.
Now that I have my basic database setup, it is time to figure out how I am going to go about down this learning/refreshing path.