Sql Server Database Design ,ER and Normalization

Hi Everyone,

I have a task to design a database (sql server) , i have 65 fields identified.

some one give me a lead,how to approach and what are all the stuff i have to take care.

Thanks in Advance !
Who is Participating?

Improve company productivity with a Business Account.Sign Up

DhaestConnect With a Mentor Commented:
To create an ERD, there are several possibilities. You can use design-programs (like visio) or sometimes you can do this in your database directly

Example access: http://databases.about.com/cs/specificproducts/g/er.htm
Start with:
Create separate tables for each group of related data and identify each row with a unique column or set of columns (the primary key).

Database Normalization Basics
Sha1395Author Commented:
Hey Dhaest,

Nice to get an answer from you promptly,am glad you are expertise in Sql Server also.

I have a question

1) how can i identified which field goes to which group (ofcourse , Employee details goes to employee table) but similar kinda field what i suppose to do ?
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

That's very hard to tell without really knowing what kind of system you are developing, what fields you want to update. I usually try to determine to see which fields are logically grouped, so that the crud-screens (update/delete/insert are mostly for 1 table)
Sha1395Author Commented:
is this anyway i can send the mapping fields,privately ?
Why not post them here ? It are just names of columns ... (no private data)
Sha1395Author Commented:
you are right,i was keep on thinking am posting the data also.

here you go...attached xls file.

basically i wanna create a ER diagram, then i will go and create a table (table is identified also) but i have to do normalization.

Based on your answer i will start walking on your path
Perhaps you can create another table witht the regional attributes, like city code, city name, state, postcode, country.

You can link this table in your home address fields and in your job data fields
Sha1395Author Commented:
very valid point,so basically i will create another table (regional table) (fields : city cod,name,state,count and Zip)

Map with Home and Job tables.

Great !

what's the logic to create an ER diagram. bcoz already you know i got the tables and fileds and i have to add this new table also.
Sha1395Author Commented:
Hi Dhaest,

based on your suggestion Created ER diagram,please advice how can i improve my ER diagram
Some small remarks:
1. Why use the countryCode in your job_tbl ? I think that the job is linked to a location (location_tbl), so you can retrieve the country though that way

2. The communication table can be easier (smaller in space), by fe using a spearate table communicationType (commTypeId, commType) whare you store fe (1, 'phone private' - 2, 'phone public' - 3, 'cellphone' - 4, 'email public', ...) In your communication_tbl, you just need (commCode, commType, value (where you really store the emailaddress, phonenumber, ....)

3. Another remark about communications: in your ERD, the person can only have 1 communicatinoCode, so remove the communicationCode from your person_tbl and store the personID in the communication_tbl. If you do so, you can store more communucations for your person.
If you think further than that, you can even add a column CompanyID in the communicaton_tbl, so that you can also add email, phone's of company's in that table
(and evern furhter thinking: just add one id to the table, fe linkedid, which can refer to the table person or company)

Sha1395Author Commented:
1. Why use the countryCode in your job_tbl ? I think that the job is linked to a location (location_tbl), so you can retrieve the country though that way.

True,the reason i used country code to retrieve the Currency not for location.is that make sense ?

I will modify the Communication Table based on your suggestion.Apart from that is this anything else i have to change ?

Thank you so much for your suggestion
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.