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使關係。應該使用主鍵進行關係對於海量數據。