我需要您关于如何实现SQL Server表关系的建议。
我有很多客户,每个客户都有一个唯一的ID(customerID
)
每个客户可以关联多个类别(categoryID
)
每个客户可以有多个子类别(subCategoryID
)
当客户登录时,我知道其CustomerID
,CategoryID
和SubCategoryID
。
客户提前计划在未来一年内每周工作多少小时(12月 2014年计划2015年52周)
客户每天都会报告他们是否工作或休息一天。
我想到了一个名为WeeklyPlanning
的表格,其中包含列:
CustomerID, CategoryID, SubCategoryID, Year, WeekNumber, WorkingHoursPlan
另一个名为DailyWorkingHours
的表格,其中包含以下列:
Dates, WorkingHours
我的问题:
我不知道如何将这两个表组合在一起,使用复合键? (CustomerID, CategoryID, SubCategoryID, Year, WeekNumber
)或者可能会在WeeklyPlanning
中生成一个唯一的PK,用作DailyWorkingHours
中的FK?
我正在寻找实现这一目标的最佳方式。
感谢
答案 0 :(得分:2)
您真的是否要为这两个表之间的每个JOIN
指定五个列的值?如果您有一个由五列组成的复合主键,那么您必须做的就是 - 您的子表中还需要所有这些列,并且您需要在进行JOIN时总是指定所有五列 ......哎......
如果不是 - 请使用WeeklyPlanning
(WeeklyPlanningID INT IDENTITY(1,1)
)中的代理列来显着简化您的生活!