创建唯一的密钥作为FK - MySQL

时间:2015-04-28 06:26:14

标签: mysql

我有一个端点/user,可为用户创建唯一的UUID。它将数据(phoneno,性别,年龄)插入表(​​cassandra表),然后将相同的数据与刚刚创建的user_id一起转发到另一个服务器,将MYSQL作为数据库。

现在在我的MySQL中,表格如下。

id(varchar)
phone no
age
gender
etc.

但我已经读过使用VARCHAR作为PK是一个非常糟糕的解决方案。因此我修改了我的表格如下: -

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表中获取用户的相应ID以在充值表中引用它,这是一个额外的操作。即对于每个插入,都会有额外的读操作。

我可以在充值表中引用/使用唯一键作为我的FK。 如果不是,那么可能的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

是的,您可以使用唯一键作为外键。 要在其他表中将列用作FK,它必须是PK或唯一键。