First Things First - What Is Database Normalization?
Database normalization is a process by which you ensure the integrity of a relational database by preventing problems such as redundancies. Simply put, if you don't efficiently organize your data (data modeling), you will be in for very unpleasant surprises when it comes time to retrieve, update or delete that data. I'm going to omit the cryptic definitions of the "low level" forms I'll cover: first normal form, second normal form, and third normal form. Simple explanations that lead to sound understanding are better than technical definitions that only add to confusion.
First, you'll want to consider what information (data) you'll need to store and what questions (queries) you'll need to ask the database. You should also know what a primary and foreign key are and how to assign them whether you're setting up tables in a graphical user interface (GUI) such as phpMyAdmin or on the command line. A primary key is a unique identifier for a record; it must always have a static value. A foreign key in one table represents the primary key in another.
Remember, we're talking about relational databases; there are relationships between tables in this kind of structure. I strongly suggest getting an understanding of the three types of relationships that can exist between any two tables: one-to-one, one-to-many, and any-to-many. If only one item in table X applies to only one item in table Y, you have a one-to-one relationship. For example, in the United States, one social security number should apply to only one unique individual. If one item in table X can apply to multiple items in table Y, you have a one-to-many relationship. For example, one birth date can apply to several people who were all born on the same day. Finally, if more than one item in table X can apply to more than one item in table Y, you have a many-to-many relationship; try to totally eliminate this third type of relationship because of the problem of redundancy.