I'm working on a database design and trying to normalize my address table (see the attached image of my database diagram). I have a contact table that is a 1-to-many relationship to my address table. A contact can have a mailing address and a shipping address. Should I create another table for the type of address? What is the best approach to normalizing my address table for the type of address? I suppose I could just add another column to the address table to specify if it is a mailing or shipping address, but I'm wondering the if the better approach would be to create a separate table for the type of address (mailing or shipping).
Also, I'm trying to figure out how to create a session table. For example, if someone logs into the application and then gets timed out, how can I keep their session login information so when they come back to the application it remembers who they are and can take them right back to where they were in the application. Is there an article that explains how to create/store a users session information for retrieval and brining them back to the application where they were and continuing where they left off?
Thanks for any help.