Добрый день. Изучаю каркас Codeigniter и хочу сделать мультиязычность. В принципе в плане того, как это сделать программно я более менее понимаю это, однако как правильно хранить эту информацию в бд. К примеру, у меня сайт на трех языках, я создаю блог и хочу, чтобы каждая написанная статья имела перевод на три языка. Каким образом хранить статьи для каждого языка? Создавать под каждый язык отдельную базу данных, таблицу или просто сделать дополнительное поле языка. В общем, жду вашего ответа. Заранее большое спасибо за любой совет.
- 09.07.2014 21:49
- Регистрация: 20.01.2010
- Сообщений: 317
- Репутация: 15
- 10.07.2014 09:46
- Регистрация: 29.11.2009
- Сообщений: 131
- Репутация: 32
Я бы лично создал еще поле в БД с сущностями, у которых надо хранить перевод и в этом поле хранил язык. А потом уже выбирал по связке нужная сущность+язык.
Но мне кажется на Codeigniter должны быть какие-то типовые решения или проверенные способы для вашей задачи. - 10.07.2014 09:57
Мы на работе используем CI и все наши сайты мультиязычные. Храним переводы в одной таблице с полем lang.
- 10.07.2014 12:03
- 10.07.2014 12:21
- Регистрация: 27.06.2013
- Сообщений: 117
- Репутация: 17
1. Таблица с языками (id, title)
2. Таблица c контентом (post_id, lang_id, title, content)
Соответственно статья выдирается запросом вида:Код:Лучшее решение с точки зрения проектирования БД. Ну и про индексы не забываем в филдах, которые используются в условиях и джойнах.SELECT post.*, contents.title, contents.content JOIN contents ON contents.post_id = post.id WHERE lang_id = LANG_ID
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Два сайта в одной базе данных | WordPress | 5 | 20.02.2014 19:34 |
Проблема с кодировкой в базе данных | Web программирование | 6 | 29.11.2013 10:31 |
Уделяем внимание базе данных MySQL | Дайджест блогосферы | 4 | 27.01.2011 15:48 |
Запрос для поиск и замены текста в базе данных | Дайджест блогосферы | 2 | 12.10.2010 20:05 |