是否合并表?

时间:2013-05-27 10:16:30

标签: sql database-design sql-server-2012 database-schema

我有三张桌子:

TABLENAME: Workers
    Workers_ID
    VNAME
    LNAME
    WindwsUserName
    Sex

TABLENAME: Contract
    Contract_ID
    Hours_to_work
    MA_ID
    Parttime/Fulltime
    Days_of_Holiday
    Days_of_Work_per_week
    Contract_StartDate

工人何时工作。一些人工作,例如只有周一3小时和周五4小时。因此有数千种不同的组合。

TABLENAME: Workdays_Details
    Workdays_Details_ID
    MA_ID
    Monday
    Hours_on_Monday
    Tuesday
    Hours_on_Tuesday
...

但是在设置好这些表之后,我想......嗯...我不能把所有这些放在桌子上。从例如contract_ID随着合同表中MA_ID的增加而增加,因为每个人都有不同的working_per_hours,因此有很多个别合同。

你怎么看?我应该把所有东西都放在一张桌子上,还是有理由我不应该?

2 个答案:

答案 0 :(得分:1)

我不知道它是否适合您,但也许您应该考虑将Workdays_Details表更改为MA_ID,Day,Hours,并将其设置为与Contract表的“多对一”关系,而不是添加2列对于表格中的每一天(总共14个),每行只添加2个。

我认为这是一个更好的解决方案。

答案 1 :(得分:0)

最好的方法是使用单独的表格。