powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Мультиязычный сайт - обеспечение целостности
5 сообщений из 5, страница 1 из 1
Мультиязычный сайт - обеспечение целостности
    #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
Мультиязычный сайт - обеспечение целостности
    #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
Мультиязычный сайт - обеспечение целостности
    #36248301
angsta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! И как я сам до такой схемы не дошел... Старею:)
...
Рейтинг: 0 / 0
Мультиязычный сайт - обеспечение целостности
    #36257829
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не парьте мозг и возьмите вот это:
Microsoft Translator
...
Рейтинг: 0 / 0
Мультиязычный сайт - обеспечение целостности
    #36261724
angsta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКа,

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


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