|
|
|
Мультиязычный сайт - обеспечение целостности
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, господа! Вопрос такой: Необходимо перепроектировать базу данных для одноязычного сайта на подержку многоязычности. На сайте выложены флэшовые образовательные модули, в конце каждого модуля ученик проходит тест, результат которого и пишется в базу. Структура БД: - 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"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 13:53 |
|
||
|
Мультиязычный сайт - обеспечение целостности
|
|||
|---|---|---|---|
|
#18+
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 можно добавлять записи всех доступных языков(например создать таблицу с языками и брать список оттуда) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 14:19 |
|
||
|
Мультиязычный сайт - обеспечение целостности
|
|||
|---|---|---|---|
|
#18+
Спасибо! И как я сам до такой схемы не дошел... Старею:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2009, 15:40 |
|
||
|
Мультиязычный сайт - обеспечение целостности
|
|||
|---|---|---|---|
|
#18+
не парьте мозг и возьмите вот это: Microsoft Translator ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 14:01 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36248001&tid=1543027]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
158ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 477ms |

| 0 / 0 |
