2010-05-29 4 views
3

Как я могу решить проблему содержимого, существующего в нескольких версиях и на нескольких языках?Структура базы данных для управления версиями и нескольких языков

Моя текущая структура:
http://i46.tinypic.com/72fx3k.png

Каждое содержание может иметь только одну активную версию на любом языке, и это, как мне любопытно, как наилучшим образом решить.

Сейчас у меня есть столбец из contentversions таблицы, что означает для каждого изменения активной версии, которую я должен выполнить обновление и установить активные = ложь на все версии, а затем обновление для установки активных = true для части контента.

ответ

2

Вы можете использовать таблицу activeversion с той же структурой, как content_contentversion_languages, но с уникальным ключом на (content_id, language_id) и одного внешнего ключа на всех колонках, ссылающегося content_contentversion_languages. Для обозначения новой версии как активной требуется только один INSERT или UPDATE для этой таблицы.

+0

Хорошая идея! В противном случае структура таблицы выглядит разумно? Я надеялся на то, чтобы взаимодействовать с ним в ORM, который, я уверен, требует некоторого смысла в структуре :) – phobia

Смежные вопросы