Как лучше спроектировать БД для многоязычных страниц?
есть страницы текстовые, они могут быть на неограниченном количестве языков, хоть на 1 хоть на 2,3, 10 языках. все переводы задаются вручную в админке, никаких автоматических переводов нет.
у страницы есть общие данные независящие от количества языков, например статус (вкл. выкл.) или ЧПУ (он один для страницы на любом языке)
если все сливать в одну таблицу то из-за автоинкримента мы получим разные id для каждого перевода как будто это разные страницы.
напрашивается вариант в одной таблице хранить общие данные, в ней же мы получим id
а в другой таблице хранить остальную информацию, без каких либо автоинкриментов, с задачей id страницы который получили добавляя общие данные и с id языка. Языки хранятся в отдельной таблице.
при редактировании страницы информация на всех языках должна разом вытягиваться.
Есть ли какие-то другие варианты как спроектировать получше, поудобнее, гибче может быть?
ну так как языки могут добавляться и удалятся значит таблицы нужно будет генерировать динамически. а как примерно будет выглядеть запрос что бы получить инфу по странице на всех языках?
напрашивается вариант в одной таблице хранить общие данные, в ней же мы получим id
а в другой таблице хранить остальную информацию, без каких либо автоинкриментов, с задачей id страницы который получили добавляя общие данные и с id языка. Языки хранятся в отдельной таблице.
Правильный вариант: для записей хранить id, groupid - общий идентификатор для группы материалов на разных языках, languageid - поле языка конкретной записи. В остальном записи идентичны.