I was wondering if this breaks first normal form.
AddressTable
Id - PK
Street
City
State
BusinessTable
Id - PK
BusinessName
AddressId - FK
PersonTable
Id - PK
FirstName
LastName
AddressId - FK
The reason I ask is that I've heard that because any given field on the address table may be a business address or a person address, you have two different data types in the same column. Under that argument, I'd need to have a BusinessAddress and a PersonalAddress table. At the same time, this database seems to be very well ordered, and I'm use to databases that break first normal form being far less sensible, and it doesn't appear easy for an anomaly to appear. The closest thing to an anomaly appearing would be if a Business and Person linked to the same address, which then creates a problem if one of them updates their address but the other doesn't (or they could point to two different records with the same data in each except for the id, which might also be an anomaly).