Здравствуйте!
Подскажите пожалуйста как можно сделать, чтобы ключ их внешней таблицы Teacher не имел дублей в TeacherSchool. Проще говоря учитель может работать только в одной школе.
Пример:
Подскажите пожалуйста как можно сделать, чтобы ключ их внешней таблицы Teacher не имел дублей в TeacherSchool. Проще говоря учитель может работать только в одной школе.
Пример:
Нужно так:
TeacherId SchoolId
1 1
5 4
8 7
Так нельзя:
TeacherId SchoolId
1 1
1 4
8 7
CREATE TABLE [dbo].[School]( [Id] [int] IDENTITY(1,1) NOT NULL CONSTRAINT [PK_dbo.School] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] CREATE TABLE [dbo].[Teacher]( [Id] [int] IDENTITY(1,1) NOT NULL CONSTRAINT [PK_dbo.Teacher] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] CREATE TABLE [dbo].[TeacherSchool]( [TeacherId] [int] NOT NULL, [SchoolId] [int] NOT NULL CONSTRAINT [PK_dbo.TeacherSchool] PRIMARY KEY CLUSTERED ( [TeacherId] ASC, [SchoolId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[TeacherSchool] WITH CHECK ADD CONSTRAINT [FK_dbo.TeacherSchool_dbo.Teacher_Id] FOREIGN KEY([TeacherId]) REFERENCES [dbo].[Teacher] ([Id]) ON DELETE CASCADE GO ALTER TABLE [dbo].[TeacherSchool] CHECK CONSTRAINT [FK_dbo.TeacherSchool_dbo.Teacher_Id] GO ALTER TABLE [dbo].[TeacherSchool] WITH CHECK ADD CONSTRAINT [FK_dbo.TeacherSchool_dbo.School_Id] FOREIGN KEY([SchoolId]) REFERENCES [dbo].[School] ([Id]) ON DELETE CASCADE GO ALTER TABLE [dbo].[TeacherSchool] CHECK CONSTRAINT [FK_dbo.TeacherSchool_dbo.School_Id] GO