ahmed_sa Ответов: 2

Как добавить класс в таблицу instructorcourses


Мне нужно составить расписание для инструктора.

день, время, дата, курсы, занятия(лаборатория или классная комната), инструктор


так что я разработал свою базу данных следующим образом

мои отношения следующие

Инструктор с курсов многие ко многим

класс с инструктором многие ко многим

Отношения между классом и инструктором многие ко многим потому что

инструктор может преподавать в большем количестве классов, а классная комната может иметь

еще инструктор






CREATE TABLE [dbo].[Courses](

    [CourseID] [int] IDENTITY(1,1) NOT NULL,

    [CourseName] [nvarchar](50) NOT NULL,

 CONSTRAINT [PK_dbo.Courses] PRIMARY KEY CLUSTERED

(

    [CourseID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

 

CREATE TABLE [dbo].[Class](

    [ClassID] [int] IDENTITY(1,1) NOT NULL,

    [ClassName] [nvarchar](50) NOT NULL,

 CONSTRAINT [PK_dbo.Class] PRIMARY KEY CLUSTERED

(

    [ClassID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

 

CREATE TABLE [dbo].[Instructor](

    [InstructorID] [int] IDENTITY(1,1) NOT NULL,

    [IstructorName] [nvarchar](50) NOT NULL,

 CONSTRAINT [PK_dbo.Instructor] PRIMARY KEY CLUSTERED

(

    [InstructorID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

 

CREATE TABLE [dbo].[InstructorCourses](

    [CourseID] [int] NOT NULL,

    [InstructorID] [int] NOT NULL,

    [fromtime] [nvarchar](50) NULL,

    [totime] [nvarchar](50)  NULL,

    [day] [nvarchar](50) NULL,

 CONSTRAINT [PK_dbo.InstructorCourses] PRIMARY KEY CLUSTERED

(

    [CourseID] ASC,

    [InstructorID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

CREATE TABLE [dbo].[Instructor_Class](

    [ClassID] [int] NOT NULL,

    [InstructorID] [int] NOT NULL,

 CONSTRAINT [PK_dbo.Instructor_Class] PRIMARY KEY CLUSTERED

(

    [ClassID] ASC,

    [InstructorID] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]


Чтобы составить расписание для инструктора я устанавливаю отношения между инструктором

таблица и курсы таблица многие ко многим и генерировать третью таблицу

Таблица InstructorCourses имеет InstructorID и CourseID

Но
Как добавить ClassID в таблицу InstructorCourses хотя таблица классов имеет отношение много ко многим с таблицей Instructor


Что я уже пробовал:

Я пытаюсь добавить класс в таблицу InstructorCourses

ahmed_sa

Как добавить класс в таблицу instuctorcourse, хотя он имеет отношение много ко многим с таблицей инструктора

2 Ответов

Рейтинг:
0

Wendelius

Из того, что я понял, отношение преподавателя к классу не является много-ко-многим для одного курса. Поэтому у вас должна быть просто таблица, содержащая классы, связанные с одной строкой в InstructorCourses.

Другими словами немного похоже на следующее

Instructor
- Sam
- Tim

Courses
- C#
- Java

Classes
- Class 1
- Class 2

Instructor courses
- Sam, C#
- Tim, C#
- Tim, Java

Instructor course classes
- Sam, C#, Class 1
- Tim, C#, Class 2
- Tim, Java, Class 1 
- Tim, Java, Class 2

Это всего лишь пример данных, поэтому, конечно, у вас должны быть правильные внешние ключи, указывающие на правильные таблицы и так далее.


Рейтинг:
0

Tomas Takac

Если я правильно понимаю, то все три таблицы (инструктор, курс, класс) участвуют в расписании. В этом случае я бы удалил отношения "многие ко многим", которые у вас сейчас есть, и соединил все три сущности с помощью одной ассоциативной таблицы. Тогда эта новая таблица может иметь день и время проведения курса.

create table dbo.Schedule
(
    ScheduleId INT NOT NULL, -- PK
    InstructorId INT NOT NULL, -- FK to instructor = who
    CourseId INT NOT NULL, -- FK to course = what
    ClassId INT NOT NULL, -- FK to class = where
    [fromtime] [nvarchar](50) NULL, -- when
    [totime] [nvarchar](50)  NULL,
    [day] [nvarchar](50) NULL
)