SQL 服务器:数据库设计 - 复合主键
SQL Server : database design - composite primary key
我需要你关于如何实施 SQL 服务器 table 关系的建议。
我有很多客户,每个客户都有一个唯一的id(customerID
)
每个客户可以关联多个类别(categoryID
)
每个客户可以有多个子类别 (subCategoryID
)
当客户登录时,我知道它的 CustomerID
、CategoryID
和 SubCategoryID
。
客户提前计划来年(12月)每周工作多少小时
2014 计划 2015 的 52 周)
每天都有客户报告他们是否工作或休息一天。
我想过有一个名为 WeeklyPlanning
的 table,其列为:
CustomerID, CategoryID, SubCategoryID, Year, WeekNumber, WorkingHoursPlan
和另一个名为 DailyWorkingHours
的 table,列数:
Dates, WorkingHours
我的问题:
我不知道如何将这两个table组合在一起,使用复合键? (CustomerID, CategoryID, SubCategoryID, Year, WeekNumber
) 或者可能在 WeeklyPlanning
中生成一个唯一的 PK,它将在 DailyWorkingHours
?
中用作 FK
我正在寻找实现它的最佳方法。
谢谢
您真的想要为这两个 table 之间的每个 JOIN
指定 FIVE 列的值吗?如果您有一个由五列组成的复合主键,这就是您必须要做的 - 您还需要 所有这些列 child table ,并且在执行 JOIN 时,您需要始终指定 所有五列 .....哎哟 ......
如果不是 - 使用 WeeklyPlanning
(WeeklyPlanningID INT IDENTITY(1,1)
)中的 surrogate 列来显着简化您的生活!
我需要你关于如何实施 SQL 服务器 table 关系的建议。
我有很多客户,每个客户都有一个唯一的id(
customerID
)每个客户可以关联多个类别(
categoryID
)每个客户可以有多个子类别 (
subCategoryID
)当客户登录时,我知道它的
CustomerID
、CategoryID
和SubCategoryID
。客户提前计划来年(12月)每周工作多少小时 2014 计划 2015 的 52 周)
每天都有客户报告他们是否工作或休息一天。
我想过有一个名为 WeeklyPlanning
的 table,其列为:
CustomerID, CategoryID, SubCategoryID, Year, WeekNumber, WorkingHoursPlan
和另一个名为 DailyWorkingHours
的 table,列数:
Dates, WorkingHours
我的问题:
我不知道如何将这两个table组合在一起,使用复合键? (CustomerID, CategoryID, SubCategoryID, Year, WeekNumber
) 或者可能在 WeeklyPlanning
中生成一个唯一的 PK,它将在 DailyWorkingHours
?
我正在寻找实现它的最佳方法。
谢谢
您真的想要为这两个 table 之间的每个 JOIN
指定 FIVE 列的值吗?如果您有一个由五列组成的复合主键,这就是您必须要做的 - 您还需要 所有这些列 child table ,并且在执行 JOIN 时,您需要始终指定 所有五列 .....哎哟 ......
如果不是 - 使用 WeeklyPlanning
(WeeklyPlanningID INT IDENTITY(1,1)
)中的 surrogate 列来显着简化您的生活!