Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Поддържане на целостта на подкласа в релационна база данни

Всеки запис на ученик ще има колона SubClass (за аргумента приемем, че това е CHAR(1)). {A =Спортист, M=музикант...}

Сега създайте своите таблици за спортисти и музиканти. Те също трябва да имат колона SubClass, но трябва да има ограничение за проверка, твърдо кодиращо стойността за типа таблица, която представляват. Например, трябва да поставите по подразбиране „A“ и ограничение CHECK на „A“ за колоната SubClass в таблицата Athlete.

Свържете вашите таблици Musician и Athlete с таблицата Student, като използвате КОМПОЗИТЕН външен ключ на StudentID И Подклас. И сте готови! Отидете да се насладите на чаша хубаво кафе.

CREATE TABLE Student (
    StudentID INT NOT NULL IDENTITY PRIMARY KEY,
    SubClass CHAR(1) NOT NULL,
    Name VARCHAR(200) NOT NULL,
    CONSTRAINT UQ_Student UNIQUE (StudentID, SubClass)
);

CREATE TABLE Athlete (
    StudentID INT NOT NULL PRIMARY KEY,
    SubClass CHAR(1) NOT NULL,
    Sport VARCHAR(200) NOT NULL,
    CONSTRAINT CHK_Jock CHECK (SubClass = 'A'),
    CONSTRAINT FK_Student_Athlete FOREIGN KEY (StudentID, Subclass) REFERENCES Student(StudentID, Subclass)
);

CREATE TABLE Musician (
    StudentID INT NOT NULL PRIMARY KEY,
    SubClass CHAR(1) NOT NULL,
    Instrument VARCHAR(200) NOT NULL,
    CONSTRAINT CHK_Band_Nerd CHECK (SubClass = 'M'),
    CONSTRAINT FK_Student_Musician FOREIGN KEY (StudentID, Subclass) REFERENCES Student(StudentID, Subclass)
);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server, АКО НЕ СЪЩЕСТВУВА Използване?

  2. Създайте изчислена колона, която използва данни от друга таблица в SQL Server

  3. Как да инсталирате SQL Server Manager Studio (SSMS) - SQL Server / TSQL урок, част 1

  4. 4 функции за форматиране на число до 2 десетични знака в SQL Server

  5. Най-добри практики за аварийно възстановяване на Microsoft SQL Server