У меня есть буквенно-цифровые данные с максимальной длиной 20 символов. Я собираюсь хранить эти данные в столбце с типом NVARCHAR(20)
.Первичный ключ NVARCHAR или INT с ограничением UNIQUE
Эти данные являются КОДАМИ и должны быть уникальными, поэтому я решил сделать его основным столбцом ключа.
Но, спрашивая another question, кто-то «предложил» мне использовать столбец INT
в качестве первичного ключа.
Что вы думаете? Первичный ключ INT
и добавьте столбец с ограничением UNIQUE
или моим текущим дизайном?
Я думаю, что добавляю новый столбец, который я не буду использовать, потому что мне нужен столбец NVARCHAR(20)
для поиска и избежания дубликатов. Другими словами, 99% моего предложения where будет иметь эту колонку NVARCHAR
.
Я не знаю, какие преимущества У меня будет добавление первичного ключа INT здесь, если я не буду его использовать. Все мои действия будут работать с столбцом 'NVARCHAR (20)'. – VansFannel
Привет, вы можете вставить в столбец INT значение хэша для ввода sring (в oracle вы можете использовать функцию ORA_HASH для этого - вставить в значения таблицы (ORA_HASH ('somt string))), когда вам нужно запросить на основе этого вы может делать что-то подобное », где myIntColumn = ORA_HASH (« INPUT STRING ») – elirevach
@VansFannel ... Сохранение целого числа более эффективно, как для поиска индекса, так и для ссылок на внешние ключи. –