When creating a database structure, how far should you normalize?
Maybe you should create an unnormalized database and split it apart as the project progresses.
Maybe you should create it fully normalized and combine tables as needed for performance.
You want to start designing a normalized database up to 3rd normal form. As you develop the business logic layer you may decide you have to denormalize a bit but never, never go below the 3rd form. Always, keep 1st and 2nd form compliant. You want to denormalize for simplicity of code, not for performance. Use indexes and stored procedures for that :)
The reason not "normalize as you go" is that you would have to modify the code you already have written most every time you modify the database design.
There are a couple of good articles: