Greetings mates,
Can someone please help me review this database design to see if it needs tweaking?
First, a little explanation.
We have an app that will require each employee to answers some questions.
Question number is for the employee to provide his/her employeeid, name, tittle and email address.
Then employee is to provide information about his or her other source of income, including source name, source address and income
Then, the employee is provide his/her spouses name, address and income source.
Income source could come from one or more sources.
Finally, employee is to provide organization name, organization address and income if s/he has done business with any organizations.
These sort of questionnaire type information led to the following database design:
CREATE TABLE [dbo].[Main](
[employeeID] [int] NOT NULL,
[sourceID] [int] NOT NULL,
[spouseID] [int] NOT NULL,
[orgID] [int] NOT NULL,
[questionID] [int] NOT NULL
)
CREATE TABLE [dbo].[SpouseDetails](
[spouseID] [int] IDENTITY(1,1) NOT NULL,
[employeeID] [int] NULL,
[spouseName] [nvarchar](50) NULL,
[spouseAddress] [nvarchar](50) NULL,
[spouseIncome] [numeric](18, 0) NULL
)
CREATE TABLE [dbo].[SourceDetails](
[sourceID] [int] IDENTITY(1,1) NOT NULL,
[employeeID] [int] NULL,
[sourceName] [nvarchar](50) NULL,
[sourceAddress] [nvarchar](50) NULL,
[sourceIncome] [numeric](18, 0) NULL
)
CREATE TABLE [dbo].[OrgDetails](
[OrgID] [int] IDENTITY(1,1) NOT NULL,
[employeeID] [int] NULL,
[orgName] [nvarchar](50) NULL,
[orgAddress] [nvarchar](50) NULL,
[orgIncome] [numeric](18, 0) NULL
)
CREATE TABLE [dbo].[Questions](
[questionID] [int] IDENTITY(1,1) NOT NULL,
[Question] [nvarchar](255) NULL
)
CREATE TABLE [dbo].[Employees](
[employeeID] [int] IDENTITY(1,1) NOT NULL,
[employeeName] [nvarchar](50) NULL,
[ttitle] [nvarchar](50) NULL,
[email] [nvarchar](50) NULL
)
I am wondering if this is fully normalized?
Thanks for your help in advance