Как ОГРАНИЧИТЬ такое состояние?SQL Server - PullRequest
0 голосов
/ 30 ноября 2018

Мне нужно создать таблицу TEAMS и создать ограничение, что тренер (TeamCoachName) может быть тренером только для 1 команды (TeamName).

/* Table number 2: Teams */
CREATE TABLE TEAMS
(
    TeamName VARCHAR(255) UNIQUE,
    YearOfFounding INT,
    TeamOwnerName VARCHAR(255),
    StadiumName VARCHAR(255),
    GeographicArea VARCHAR(255) 
         CHECK (GeographicArea  IN ('North','Central','South')),
    TeamCoachName VARCHAR(255),

    CONSTRAINT Names UNIQUE (TeamName, TeamCoachName),
    CONSTRAINT OneTeamCoach
)

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Это ваша таблица Team, и если тренер может быть связан только с 1 строкой команды, то это просто UNIQUE CONSTRAINT на TeamCoachName.

0 голосов
/ 30 ноября 2018

Вы можете сделать это с UDF, который принимает TeamName и CoachName и возвращает "true", если CoachName связан с какой-либо другой командой.

Затем проверьте значение этогофункция в ограничении CHECK.

(Хотя на самом деле Джейми поднимает хорошую мысль. Если TeamName также УНИКАЛЬНО, то все, что вам нужно, это УНИКАЛЬНОЕ ограничение на CoachName. Единственный способ, которым вам понадобится мой подходесли один и тот же TeamName может появиться в нескольких строках.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...