обрабатывать идентификацию языка - PullRequest
0 голосов
/ 14 апреля 2011

Должен ли я ссылаться на язык с помощью цифр или ключевых слов на мультиязычном веб-сайте?

Например, скажем, англичанин выбирает услугу из списка услуг, список услуг будет на английском языке,в то время как если испанский человек выбирает из списка услуг, список будет на испанском языке.

Список услуг выбирается из таблицы в базе данных, каждый сервис имеет уникальный номер для его идентификации и что-тоопределить, на каком языке написан сервис.Я спрашиваю, что лучше.Использовать число для идентификации языка или использовать код языка?

Пример:

гипотетическая таблица услуг:

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

Где я даю числовой идентификатор каждому языку

Я вижу, что подход с использованием языкового кода делает базу данных более читабельной, но почему это должно иметь значение, если сервер все равно обрабатывает все, где числапроще для сервера, но тогда я должен был бы дать номер каждому языку.

Так какой подход, по вашему мнению, лучше и почему?

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

Я бы почти всегда нормализовал такие вещи, но это может быть редким исключением по следующим причинам:

  1. Столбец nchar (2) будет занимать только 4 байта, что соответствует столбцу типа int. Поэтому на производительность не следует влиять, особенно если установить коалицию по порядку.

  2. Двухсимвольные коды языков соответствуют международным стандартам, которые чрезвычайно вряд ли когда-либо будут изменены. Поэтому массовые обновления не должны быть проблемой.

Таким образом, аргументы для нормализации на самом деле не применимы в этом случае.

1 голос
/ 14 апреля 2011

Существует стандартизированный ISO набор языковых кодов .Я бы просто использовал эти примеры, как в примере 1. Вероятно, у вас должна быть вторичная таблица, в которой перечислены короткие 2/3 -значные коды и длинно-прописанная версия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...