|
|
|
Мультиязычная таблица
|
|||
|---|---|---|---|
|
#18+
Есть простая таблица Users: Код: sql 1. 2. 3. 4. 5. 6. 7. можно ли создать для неё такое представление, чтоб в коде можно было обратиться примерно так: Код: php 1. и получить значения колонок, в зависимости от языка.. ? Или есть другие варианты получить значения в зависимости от языка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 12:54 |
|
||
|
Мультиязычная таблица
|
|||
|---|---|---|---|
|
#18+
Дормедонт Евлампиевичи получить значения колонок, в зависимости от языка.. ? А где он задаётся, язык-то? Дормедонт Евлампиевичможно ли создать для неё такое представление А чего нет-то? Код: sql 1. 2. 3. 4. 5. 6. 7. Хотя разумнее переделать нафиг структуру таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 13:18 |
|
||
|
Мультиязычная таблица
|
|||
|---|---|---|---|
|
#18+
PS. Алиасы во втором подзапросе удалить - я что-то отвлёкся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 13:19 |
|
||
|
Мультиязычная таблица
|
|||
|---|---|---|---|
|
#18+
AkinaА где он задаётся, язык-то? Задаётся в сессионной переменной: Код: sql 1. AkinaА чего нет-то? Код: sql 1. 2. 3. 4. 5. 6. 7. Хотя разумнее переделать нафиг структуру таблицы. Надо значения только на указанном языке, а не на всех. Т.е. если @lang ='RU', то в виртуальной колонке NAME должно быть значение из NAME_RU И желательно, чтобы можно было апдейтить вьюшку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 13:45 |
|
||
|
Мультиязычная таблица
|
|||
|---|---|---|---|
|
#18+
Дормедонт ЕвлампиевичЗадаётся в сессионной переменной: Код: sql 1. Представления не могут ссылаться на пользовательские переменные. Дормедонт Евлампиевичжелательно, чтобы можно было апдейтить вьюшку Представление может быть только заменено на новое (CREATE OR REPLACE VIEW), корректировка не предусмотрена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 13:55 |
|
||
|
Мультиязычная таблица
|
|||
|---|---|---|---|
|
#18+
AkinaПредставление может быть только заменено на новое (CREATE OR REPLACE VIEW), корректировка не предусмотрена. имел ввиду update Users_view set... AkinaПредставления не могут ссылаться на пользовательские переменные. так понимаю, это ставит крест на данном подходе.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 14:06 |
|
||
|
Мультиязычная таблица
|
|||
|---|---|---|---|
|
#18+
Дормедонт Евлампиевичтак понимаю, это ставит крест на данном подходе.. На именно данном - да. Могу предложить написать процедуру, которая принимает указатель языка и создаёт временную таблицу с данными для указанного языка, которая может повторно использоваться, пока не будет закрыто соединение. Либо возвращает набор записей для указанного языка (процедуры, в отличие от представлений, вполне себе могут общаться с пользовательскими переменными). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 14:28 |
|
||
|
Мультиязычная таблица
|
|||
|---|---|---|---|
|
#18+
Для таблиц с мультиязычными колонками я использую простую процедуру (функцию), которая по-сути делает if-else if-else... в зависимости от установки тек.языка. Например, select ..., функция(поле_RU,поле_UA,поле_EN,...), ... FROM ... А в функции ... set name=IF @lang='RU' then .... else ... endif ... Громоздко и некрасиво, но работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2018, 16:36 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=51&tid=1829754]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 358ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...