Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Мультиязычный сайт - обеспечение целостности / 5 сообщений из 5, страница 1 из 1
13.10.2009, 13:53
    #36247924
angsta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мультиязычный сайт - обеспечение целостности
Здравствуйте, господа!

Вопрос такой:
Необходимо перепроектировать базу данных для одноязычного сайта на подержку многоязычности.
На сайте выложены флэшовые образовательные модули, в конце каждого модуля ученик проходит тест, результат которого и пишется в базу.
Структура БД:
- modules - таблица с данными о модулях
- users - данные о пользователях
- results - таблица с двумя внешними ключами (user_id и module_id), хранящая результаты тестов.

При необходимости хранить данные на двух языках таблица "modules" разбивается на две, и структура становится такой:
- modules_ru
- modules_en
- users
- results

На такой структуре сцепка по внешнему ключу между "results" и "modules" рассыпается. Можно, конечно, было сделать две версии каждой таблицы, русскую и английскую, но жестким условием заказчика было общее пользовательское пространство (англичане видят русских пользователей, русские - англичан).

Сразу выплыли проблемы:
1) Как обеспечить частичную когерентность данных в "modules_ru" и "modules_en", т.е. чтобы при добавлении строки в "modules_ru" некоторые столбцы зеркалились в "modules_en"?
2) Как обеспечить целостность таблицы "results" и ее связь с "modules"?
...
Рейтинг: 0 / 0
13.10.2009, 14:19
    #36248001
Infernal V. Raven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мультиязычный сайт - обеспечение целостности
angsta
1) Как обеспечить частичную когерентность данных в "modules_ru" и "modules_en", т.е. чтобы при добавлении строки в "modules_ru" некоторые столбцы зеркалились в "modules_en"?
2) Как обеспечить целостность таблицы "results" и ее связь с "modules"?Для мультиязычности обычно используют такую схему:
modules: module_id, module_type ...
modules_l: module_id, lang, name

таким образом языкозависимые ресурсы хранятся в таблице modules_l
в этом случае нет проблем с добавлением еще одного языка и вдобавок легко переключить язык поменяв условие WHERE:
... where lang = 'RU' к примеру

при добавлении записи в modules можно добавлять записи всех доступных языков(например создать таблицу с языками и брать список оттуда)
...
Рейтинг: 0 / 0
13.10.2009, 15:40
    #36248301
angsta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мультиязычный сайт - обеспечение целостности
Спасибо! И как я сам до такой схемы не дошел... Старею:)
...
Рейтинг: 0 / 0
18.10.2009, 14:01
    #36257829
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мультиязычный сайт - обеспечение целостности
не парьте мозг и возьмите вот это:
Microsoft Translator
...
Рейтинг: 0 / 0
20.10.2009, 12:45
    #36261724
angsta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мультиязычный сайт - обеспечение целостности
уТКа,

Попробовал. Качество перевода никакое на самом деле, не устраивает. Вообще машинный перевод может порой ТАКОЕ выдать...
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Мультиязычный сайт - обеспечение целостности / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]