MySql Compound Уникальный индекс типа Varchar

Вот моя ситуация:

• I have a table of users <br><br>
• I have a table of movies <br><br>
• I have a table of user_movies that associates users to movies that stores a frequently changing "score" column on each record.<br><br>
• I need to be able to bulk update the user_movies table for speed and to do so I believe I need a unique index to be able to pull off bulk updates like this.<br><br>
• Considering each user_movie combination is unique, would it be possible to do

Сделать что-то вроде (User_id--->) uid_mid (<----movie_id) как уникальный идентификатор? Если так, как можно было бы перевести существующую таблицу в эту?

0

Решение

Я хотел бы думать, что есть способ использовать двухколонный индекс для вашей проблемы, однако …

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

ALTER TABLE user_movies ADD COLUMN new_id VARCHAR(250);

UPDATE user_moves SET new_id=CONCAT(CAST(user_id as CHAR(125)), LPAD(CAST(move_id as CHAR(125)),125,'0'));

CREATE UNIQUE INDEX myindex ON user_movies(new_id);

Числа 250 и 125 произвольны, конечно, но вы бы хотели, чтобы они были достаточно большими, чтобы соответствовать вашим реальным идентификаторам. Я добавляю второй идентификатор, чтобы убедиться, что он действительно уникален (поскольку мы не хотим, чтобы user_id = 55 / movie_id = 66 получал тот же идентификатор, что и user_id = 5 / movie_id = 566).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]