1

我有用户偏好等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 

我要创建这些表和users表之间的关系,我想千牛哪个字段更适合外键?例如在currencycurrency.idcurrency.slug

回答

0

如果你看到SQL速度比你应该去currency.id因为找到整数值从很多很多行(千)会更快然后寻找到VARCHAR

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

你既可以在这个特殊的例子使用: currency.id或currency.slug

+0

谢谢你的建议,你怎么看大小的想法?因为我应该存储'usd'用于'users'表中的每个用户而不是'1' – MajAfy

+0

整数总是会** 4个字节** –

+1

整数总是会** 4个字节**但VARCHAR是动态的,所以它会计算对你的slu ** **每个字符1字节*这里slu looks看起来很小** 3个字符**所以你可以使用currency.slug作为这个例子。 –

0

我建议你使用currency.id使关系。应该使用主键进行关系对于海量数据。