Php 处理语言识别
在多语言网站中,我应该使用数字或关键字引用语言吗 例如,假设一个英国人从服务列表中选择一项服务,那么服务列表将使用英语,而如果一个西班牙人从服务列表中选择,那么列表将使用西班牙语 服务列表是从数据库中的一个表中选择的,每个服务都有一个唯一的编号来标识它,以及标识服务是用什么语言编写的。 我想问的是,哪一个更好。使用数字来标识语言,还是使用语言代码 例如: 假设服务表:Php 处理语言识别,php,mysql,sqlite,database-design,Php,Mysql,Sqlite,Database Design,在多语言网站中,我应该使用数字或关键字引用语言吗 例如,假设一个英国人从服务列表中选择一项服务,那么服务列表将使用英语,而如果一个西班牙人从服务列表中选择,那么列表将使用西班牙语 服务列表是从数据库中的一个表中选择的,每个服务都有一个唯一的编号来标识它,以及标识服务是用什么语言编写的。 我想问的是,哪一个更好。使用数字来标识语言,还是使用语言代码 例如: 假设服务表: id | service_id | service | lang -------------------------------
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
我给每种语言一个数字标识
我可以看到,语言代码方法使数据库更具可读性,但如果服务器能够处理所有数据,这又有什么关系呢?数字对服务器来说更容易,但我必须为每种语言都提供一个数字
那么,您认为哪种方法更好,为什么呢?有一个问题。我只想使用例子1中的例子。您应该有一个二级表,其中列出了长拼写版本的短2/3位代码。有一个。我只想使用例子1中的例子。您可能应该有一个二级表,其中列出了长拼写版本的短2/3位代码。我几乎总是将这些内容规范化,但由于以下原因,这可能是一个罕见的例外:
因此,规范化的参数在这种情况下并不真正适用。我几乎总是将这些东西规范化,但由于以下原因,这可能是一个罕见的例外:
因此,规范化的参数在这种情况下并不适用。+1在数据库中创建iso_语言表是一个非常好的主意。在第一个示例中使用两个字母的代码连接到它是很好的。在数据库中使用+1 iso_语言表是一个非常好的主意。在第一个例子中使用两个字母的代码连接到它是很好的。感谢Coalition技巧,我永远不会想到它。因此,对于语言来说,代码毕竟更好。+1我同意杰弗里的建议——使用标准代码。然而,规范化注释没有任何意义。是否使用数字或语言代码与标准化无关。@杰夫瑞,我是否应该考虑使用5字节代码来代替,比如“EnEnUS”?@ DPATAS——是的,在我写了这个之后,我意识到“标准化”不是正确的术语。相反,我想的是,我通常会使用人工钥匙而不是自然钥匙,这是一种罕见的情况,自然钥匙是合适的。(我知道有些人主张自然键在很多地方,但在大多数情况下,这不是我对这件事的感受。)我同意这样的措辞,因为如果使用人工键,那么效果将与正常化相同。也就是说,许多“en”的实例将被一个数字键引用的单个实例所取代。多亏了Coalition技巧,我永远不会想到它。因此,对于语言来说,代码毕竟更好。+1我同意杰弗里的建议——使用标准代码。然而,规范化注释没有任何意义。是否使用数字或语言代码与标准化无关。@杰夫瑞,我是否应该考虑使用5字节代码来代替,比如“EnEnUS”?@ DPATAS——是的,在我写了这个之后,我意识到“标准化”不是正确的术语。相反,我想的是,我通常会使用人工钥匙而不是自然钥匙,这是一种罕见的情况,自然钥匙是合适的。(我知道有些人主张自然键在很多地方,但在大多数情况下,这不是我对这件事的感受。)我同意这样的措辞,因为如果使用人工键,那么效果将与正常化相同。也就是说,“en”的多个实例将被数字键引用的单个实例替换。
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