SQL Server外键链接

时间:2014-11-27 21:27:47

标签: sql sql-server foreign-keys foreign-key-relationship

规划数据库结构时遇到一个小问题。

目前,我有这样的事情(图表:http://i61.tinypic.com/30xa1yp.png):

CREATE TABLE ProductionStage (Id int PRIMARY KEY)
CREATE TABLE ReportType (Id int PRIMARY KEY)    
CREATE TABLE ProductionLine (Id int PRIMARY KEY)

CREATE TABLE PL_RT
(
    IdProductionLine int FOREIGN KEY REFERENCES ProductionLine(Id),
    IdReportType int FOREIGN KEY REFERENCES ReportType(Id),
    primary key (IdProductionLine, IdReportType)
)

CREATE TABLE PS_RT
(
    IdProductionStage int FOREIGN KEY REFERENCES ProductionStage(Id),
    IdReportType int FOREIGN KEY REFERENCES ReportType(Id),
    primary key (IdProductionStage, IdReportType)
)

CREATE TABLE Report
(
    IdProductionStage int FOREIGN KEY REFERENCES PS_RT(Id),
    IdReportType int , -- foreign key from PS_RT(Id) or PL_RT(Id)
    IdProductionLine int FOREIGN KEY REFERENCES PL_RT(Id)
)

我想为生产监控准备一个数据库项目。主要概念看起来像这样。一名工人正在操作生产线,并且在每个完整的生产阶段,他正在准备一份报告。报告类型取决于生产阶段和生产线,但每条生产线的生产阶段是相同的。

我的问题

这个外键链接(如Report - > PS_RT - > ProductionStage || ReportType)在SQL Server中是个好主意,是否会正确执行约束?

我也想听听你如何解决这类问题的想法,因为我真的没有比这更好的想法。

0 个答案:

没有答案