问题描述
|
在多语言网站中,我应该使用数字或关键字来引用该语言吗?
例如,假设一个英国人从一个服务列表中选择一个服务,该服务列表将为英语,而如果一个西班牙人从一个服务列表中进行选择,则该列表将为西班牙语。
服务列表是从数据库中的表中选择的,每个服务都有一个唯一的编号来标识它,还有一些标识使用哪种语言编写的服务。
我要问的是,哪个更好。使用数字识别语言还是使用语言代码?
例:
假设服务表:
id | service_id | service | lang
------------------------------------
0 | cooking | 1 | en
1 | driving | 2 | en
2 | singing | 3 | en
3 | running | 4 | en
4 | cocinar | 1 | es
5 | conducir | 2 | es
6 | cantar | 3 | es
7 | correr | 4 | es
VS
id | service_id | service | lang
------------------------------------
0 | cooking | 1 | 1
1 | driving | 2 | 1
2 | singing | 3 | 1
3 | running | 4 | 1
4 | cocinar | 1 | 2
5 | conducir | 2 | 2
6 | cantar | 3 | 2
7 | correr | 4 | 2
我在每种语言中给数字编号的地方
我可以看到语言代码方法使数据库更具可读性,但是如果服务器无论如何都要处理它,那为什么它真的很重要,因为对于服务器来说数字更容易,但是我必须给每种语言都给出一个数字。
那么您认为哪种方法更好,为什么呢?
解决方法
我几乎总是将这些事情标准化,但是由于以下原因,这可能是一个罕见的例外:
nchar(2)列仅占用4个字节,与int列相同。因此,性能不应受到影响,特别是如果您将合并设置为顺序。
两种语言的语言代码符合国际标准,因此极不可能更改。因此,大规模更新不应该成为问题。
因此,在这种情况下,规范化的参数实际上并不适用。
,有一套ISO标准化的语言代码。我将使用类似于示例1的代码。您应该有一个辅助表,该表还列出了长拼写版本的短2/3位代码。