форсировать правило наличия одной записи на комбинацию в SQL Server - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть таблица в sql, которая использует модель смежности для создания дочерних / родительских отношений.Вот точная схема:

id int primary key identity(1,1)
name nvarchar(max)
parent int

Теперь я хочу иметь ровно одно имя с тем же родителем.другое слово для родителя 1 должно быть только одно имя.если это имя будет отображаться в другой записи, оно должно иметь другого родителя.Как я могу сделать это в T-SQL?

Ответы [ 2 ]

4 голосов
/ 08 февраля 2012

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

Используете ли вы SQL Server?Если это так, эти две статьи должны помочь:

Обзор: http://msdn.microsoft.com/en-us/library/ms191166.aspx

Создание / изменение: http://msdn.microsoft.com/en-us/library/ms177420.aspx

Изменить, чтобы привести пример

ALTER TABLE [YourTable]
ADD CONSTRAINT [YourConstraint] UNIQUE NONCLUSTERED ([name], [parent])
1 голос
/ 08 февраля 2012

Вы можете создать уникальный индекс (родитель, имя).

...