Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
База для многоязычного сайта (dopeless) 02/09/2008 - 02:15:48
      Re: База для многоязычного сайта (bac) 02/09/2008 - 21:22:25
      Re: База для многоязычного сайта (dopeless@pisem.net) 02/09/2008 - 23:18:03
      Re: База для многоязычного сайта (bac) 02/09/2008 - 23:30:43

> Original message text:
> From: dopeless - 02/09/2008 - 02:15:48
> Subject:База для многоязычного сайта
> -----------------
> Всем добрый вечер.
>
> Сейчас моделирую базу для сайта, который должен будет поддерживать несколько языков и задумался над следующим вопросом:
>
> Предположим будет таблица "магазины" со сделующими столбцами:
> -айди
> -Название магазина
> -Дата добавления
> -Оценка магазина
> -тип магазина (форейн ки)
>
> и таблица "типы магазинов" со столбцами:
> -айди
> -типы
>
> Тип магазина для первой таблицы берется из второй таблицы.
>
> Изначально хотел делать следующим образом - в базе создаются две таблицы "магазины" - "рус_магазины" и "анг_магазины" (предположим, будет 2 языка) и две таблицы "типы магазинов" - "рус_типы магазинов" и "анг_типы магазинов". Затем в зависимости от того, какой язык выбрал пользователь данные загружаются из соответствующих таблиц. Но если с таблицами "типы магазинов" проблем не будет, то в таблицах "магазины" прийдется дублировать данные (айди, дата добавления, оценка магазина). Таблиц на самом деле будет очень много и будут они содержать очень много столбцов. Поэтому, мне кажется глупым делать так, как я описал выше и дублировать кучу данных. Например, если пользователь добавит оценку магазина, ее прийдется продублировать в две таблицы (делать запрос к двум таблицам).
>
> Поэтому я решил сделать следующим образом:
>
> сделать одну таблицу "магазины", которая будет выглядеть так:
>
> -айди
> -рус_Название магазина
> -анг_Название магазина
> -Дата добавления
> -Оценка магазина
> -тип магазина (форейн ки)
>
> а вторую таблицу оставить без изменений (тоесть все-равно создавать по одной таблице для каждого языка - там никакие данные дублироваться не будут. В этом случае, конечно будет меньше таблиц, но сложнее будет добавить еще один язык.
>
> Еще есть вариант сделать так: таблица "магазины" создается для каждого языка:
> -айди
> -Название магазина
>
> а данные, общие для всех языков хранятся в отдельных таблицах:
> -Дата добавления (форейн ки) хранится в таблице "даты добавления"
> -Оценка магазина (форейн ки) хранится в таблице "оценки"
> -тип магазина (форейн ки)
>
> Но в этом случае для получения всех данных для таблицы "магазины" прийдется грузить данные из четырех таблиц.
>
>
> В общем если возможно понять, что я хочу, подскажите плз, как лучше сделать. Может есть еще какой-то вариант, про который я не сообразил?
>
> Надеюсь на совет : ) Спасибо...
>
>


From: dopeless@pisem.net - 02/09/2008 - 23:18:03
Subject:База для многоязычного сайта
-----------------
Спасибо, что отозвались. Естественно, таблица с языками будет. Просто хочется знать, на сколько влияет количество таблиц на скорость работы базы. На сколько я понимаю, на скорость влияет только количество запросов - пусть лежит хоть 10000 таблиц, но если делаем запрос к десяти - торомзов быть не должно - или я не прав? И на сколько критично то, что в случае создания одинаковых таблиц для разных языков данные будут дублироваться (такие, как дата добавления и т. п.)? или все эти данные засунуть еще в одну таблицу? Тогда получается, что для получения данных об одном магазине (например) прийдется делать запрос не к одной, а к, скажем, десяти таблицам...


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
33999



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |