У меня есть конечная точка /user
, которая создает уникальный UUID для пользователя. Он вставляет данные (phoneno, gender, age) в таблицу (таблица cassandra), а затем пересылает одни и те же данные на другой сервер вместе с только что созданным user_id, имея MYSQL в качестве базы данных.Создание уникального ключа как FK - MySQL
Теперь в моем MySQL таблица выглядит следующим образом.
id(varchar)
phone no
age
gender
etc.
Но я читал, что использование VARCHAR как ПК очень плохое решение. Поэтому я изменил свою таблицу следующим образом: -
id(interger auto increment)
user_id (varchar unique)
phone no
age
gender
etc.
У меня есть другая конечная точка /recharge
, которая содержит user_id (UUID), recharge_amount, operator, etc.
.
Моя перезарядка таблица выглядит следующим образом: -
user_id FK
amount
operator
Теперь возникает проблема, что всякий раз, когда я буду получать данные для /recharge
мне нужно, чтобы получить соответствующий идентификатор пользователя из таблицы Users, чтобы ссылаться на него в таблице подзарядки, что является дополнительной операцией. т.е. для каждой вставки будет выполняться дополнительная операция чтения.
Могу ли я использовать/использовать уникальный ключ как свой FK в таблице пополнения баланса. Если нет, то каково возможное решение?
Благодарим за быстрый ответ. Из разных блогов я читал, что использование VARCHAR как ПК очень плохое решение, поскольку оно снижает скорость записи, если записи составляют более миллиона, и в моем случае это будет. Он снижает скорость, потому что ему необходимо перестроить индекс и различные другие вещи. Но как насчет использования VARHCAR asFK. Будет ли это влиять на скорость записи? Имеет ли это тот же эффект, что и включение VARCHAR в FK? – PythonEnthusiast
VARCHAR as PK - плохой путь. Но я не знаю, как VARCHAR как FK повлияет на производительность, я думаю, что это не так, как это не связано правилами, установленными для ПК. – GouravR