Question

I just started to work with databases and want to realize the reasons for the concept of adventure-work-db tables design. why do we consider BusinessEntity as a table and we didn't put it in person table? isn't it kind of over-Normalized Table?

enter image description here

Was it helpful?

Solution

A table should generally represent one thing/object/concept. If you were to include the content of BusinessEntity within Person, then the model is saying that a Person is a BusinessEntity and vice versa which I guess is not really true. Although I accept that BusinessEntity does not currently have anything it in other than a reference to a Person.

However the model as it stands is easily extendable. You may wish to add new columns in the future to BusinessEntity (e.g. Company Number, tax registration code). Such attritubes do not belong to a person so would not really belong in the Person table. Hence if your application has a concept of a Business Entity then it is good practice to model it as in your diagram.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top