Выбор правильного индекса для предотвращения дублирования, но не влияет на порядок - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть таблица, содержащая столбец INT IDENTITY и столбец VARCHAR(10).Я хочу иметь UNIQUE CLUSTERED INDEX в столбце IDENTITY (так что это первичный ключ), и мне также нужен способ предотвращения дублирования значений в столбце VARCHAR(10).Однако данные должны быть упорядочены по столбцу IDENTITY в порядке возрастания.

Например:

CREATE TABLE ref.currency (
    currency_id INT NOT NULL IDENTITY(1,1),
    currency_name VARCHAR(10) NOT NULL
);
GO
CREATE UNIQUE CLUSTERED INDEX ix_ref_currency_id ON ref.currency(currency_id);
GO
INSERT INTO ref.currency (
    currency_name
)
VALUES 
    ('Pounds'),
    ('Euros'),
    ('Dollars');

(я создаю UNIQUE CLUSTERED INDEX вместо PRIMARY KEY, какМеня этому учили, но я не до конца понимал причины, по которым одно должно быть выбрано над другим. С тех пор я придерживался этого.)

Вопрос:

Какой тип индекса мне следует выбрать?добавить в эту таблицу, чтобы предотвратить добавление повторяющихся значений в столбец currency_name, чтобы не влиял на порядок данных?

Я пытался добавить UNQIUE NONCLUSTERED INDEXОднако это приводит к тому, что данные упорядочиваются по currency_name, что мне не нужно.

...