关系中字段类型的逻辑

The logic of field type in relationship

我有一些 table 用于用户偏好,例如 currencylanguage 和 ...

currency 结构和示例记录:

id  |   title    |  slug
----+------------+--------
1   | US Dollar  | usd
2   | CA Dollar  | cad
3   | Euro       | eur
4   | Swiss Franc| chf

language 结构和示例记录:

id  |   title     |    code   |   flag
----+-------------+-----------+----------
1   | English     | en        | img/flags/en.png
2   | French      | fr        | img/flags/fr.png

我想在这些 table 和 users table 之间创建一个关系,我想知道哪个字段更适合外键?例如 currency table currency.idcurrency.slug ?

如果您看到 sql 速度比您应该选择 currency.id 因为从手数中找到 整数 值这么多行(以千计)会更快 然后找到 varchar.

但是在这里你看到货币不会超过 500 所以你可以同时使用它不会影响你的速度。

您可以在此特定示例中同时使用两者: currency.id 或 currency.slug

我建议您使用currency.id建立关系。应该使用主键建立关系对于大量数据。