Новости
Документация
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



From: dopeless - 02/09/2008 - 02:15:48
Subject:База для многоязычного сайта
-----------------
Всем добрый вечер.

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

Предположим будет таблица "магазины" со сделующими столбцами:
-айди
-Название магазина
-Дата добавления
-Оценка магазина
-тип магазина (форейн ки)

и таблица "типы магазинов" со столбцами:
-айди
-типы

Тип магазина для первой таблицы берется из второй таблицы.

Изначально хотел делать следующим образом - в базе создаются две таблицы "магазины" - "рус_магазины" и "анг_магазины" (предположим, будет 2 языка) и две таблицы "типы магазинов" - "рус_типы магазинов" и "анг_типы магазинов". Затем в зависимости от того, какой язык выбрал пользователь данные загружаются из соответствующих таблиц. Но если с таблицами "типы магазинов" проблем не будет, то в таблицах "магазины" прийдется дублировать данные (айди, дата добавления, оценка магазина). Таблиц на самом деле будет очень много и будут они содержать очень много столбцов. Поэтому, мне кажется глупым делать так, как я описал выше и дублировать кучу данных. Например, если пользователь добавит оценку магазина, ее прийдется продублировать в две таблицы (делать запрос к двум таблицам).

Поэтому я решил сделать следующим образом:

сделать одну таблицу "магазины", которая будет выглядеть так:

-айди
-рус_Название магазина
-анг_Название магазина
-Дата добавления
-Оценка магазина
-тип магазина (форейн ки)

а вторую таблицу оставить без изменений (тоесть все-равно создавать по одной таблице для каждого языка - там никакие данные дублироваться не будут. В этом случае, конечно будет меньше таблиц, но сложнее будет добавить еще один язык.

Еще есть вариант сделать так: таблица "магазины" создается для каждого языка:
-айди
-Название магазина

а данные, общие для всех языков хранятся в отдельных таблицах:
-Дата добавления (форейн ки) хранится в таблице "даты добавления"
-Оценка магазина (форейн ки) хранится в таблице "оценки"
-тип магазина (форейн ки)

Но в этом случае для получения всех данных для таблицы "магазины" прийдется грузить данные из четырех таблиц.


В общем если возможно понять, что я хочу, подскажите плз, как лучше сделать. Может есть еще какой-то вариант, про который я не сообразил?

Надеюсь на совет : ) Спасибо...



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

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

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



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