Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

MYSQL Можно ли использовать PRIMARY KEY для двух столбцов ?

n0bleman Новичок (0), открыт 3 недели назад
Есть таблица Users
Id primary key
Token primary key
Мне нужно что бы всю строку можно было получить как по уникальному Id так и по token разумно ли объявлять для обеих primary key ? Или можно как то поп равильному ? Ибо у меня будет токен рандомный по которому я должен буду идентифицировать пользователя токен устанавливается по Id
3 ответа
Максим Искусственный Интеллект (214633) 3 недели назад
Возможно, только ты не понимаешь суть первичного ключа. Это будет один ключ, в который включены оба поля. Он нужен не (только) для быстрого поиска по ключу. Он нужен для идентификации твоей строки. Это будет означать, что твоя строка идентифицируется двумя полями. То есть одно поле может повторяться, но два поля вместе будут уникальными. Если же ты хочешь осуществлять быстрый поиск по второму полю, то достаточно, помимо первичного ключа, добавить в таблицу индекс. Другой вопрос, нужен ли тебе вообще "Id", если ты собрался идентифицировать строку по токену.
Вячеслав Рожнев Профи (851) 3 недели назад
Лучше так

 CREATE TABLE Users ( 
Id INT AUTO_INCREMENT primary key,
Token VARCHAR(64) UNIQUE
);
https://sqlize.online/s/H9
Похожие вопросы