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




MySQL.RU - Webboard



Вернуться
Многоязычная система. (Grigoriy) 20/04/2004 - 18:48:52
      Re: Многоязычная система. (Grigoriy) 20/04/2004 - 20:45:10
      Re: Многоязычная система. (dEp) 21/04/2004 - 16:02:51

> Original message text:
> From: Grigoriy - 20/04/2004 - 18:48:52
> Subject:Многоязычная система.
> -----------------
> Мне нужно рещить конкретную задачу. Пример будет кострированный, только для наглядности. Есть система работающая с N языками, в ней очень много пользователей. У каждого пользователя есть ФИО на всех N языках записанное. надо организовать работу с запросом на выборку ФИО по ID. Основные требования быстродействие + модульность реализации.
> Предпологаемое решение.
> Таблица 1
> Поля ID(KEY), Lang_1, Lang_2, ..., Lang_N
>
> Таблица 2
> Поля ID(KEY), FistName, LastName,
>
> В полях FistName и LastName храняться ID из таблицы 1. А таблице 1 соответсвенно написания на разных языках.
>
> Вроде в теории все понятно и очень красиво, но....
> Никак не удается вытащить одним запросом данные слинковав их. Потому как пытаясь линковаться через WHERE невозможно получим взаимоисключение, т.е. FistName != LastName, и нельзя найти такой ID в таблице 1 получаем пустоту.
>
> Можно вытаскивать несколькими запросами сначала из таблицы 2, а потом их таблицы 1 все остально по частям... но это я так понимаю будет неприемлемо медленно, можно конечно пробовать кешировать на C или С++ я бы так и писал, в РНР я не очень силен потому не совсем ясно как это сделать...
>
> Вопрос такой как все это сделать в переделах этой схемы или какие другие методы рассмотреть. Сделать много таблиц 1. не пойдет, т.к на самом деле параметров типа ФИО очень много в системе, копировать поля таблицы 2 для на каждый язык очень каряво и вообщем-то неприемлемо....
>
> Помогите начинающему :-)
>
>


From: Grigoriy - 20/04/2004 - 20:45:10
Subject:Многоязычная система.
-----------------
решил таки задачку...нашел случайно совсем в другой теме

SELECT z.id, q.a, q.b, w.a AS c, w.b AS d
FROM table2 AS z
LEFT JOIN table1 AS q ON z.FirstName = q.id
LEFT JOIN table1 AS w ON z.LastName = w.id LIMIT 0 , 30

вот так.
получам таблицу с

[id a, b, c, d]


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

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

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



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