Hi,
I am thinking through the layout of my "Person" table in my MSSQL DB. Is it better to have all columns in dbo.Person as such:
Person
(
personid
first
last
email
confirmcode
isconfirmed
homeaddress
homecity
homestate
homezip
session
ipaddress
workaddress
workcity
workstate
workzip
etc...
)
OR, is it better to partition the table into related tables like so:
Person
(
personid,
first,
last
)
Email
(
emailid,
personid,
email,
confirmcode,
isconfirmed,
modifydate,
createdate
)
Session
(
sessionid,
personid,
session,
activitydate
)
HomeAddress
(
homeaddressid,
personid,
address,
city,
state,
zip
)
WorkAddress
(
workaddressid,
personid,
address,
city,
state,
zip
)
I have read arguments for both. The former (one table) says that performance takes a hit because of the need for multiple joins when returning data. I have also read that having multiple tables reduces future fires when you have to add or remove new columns related to a given grouping (for example, adding an alternate email address will create NULLs in your Person table).
Thoughts? Thanks.