用于版本控制和多种语言的数据库结构
如何解决内容多版本、多语言的问题?
每个内容在每种语言中只能有一个活动版本,这就是我很好奇如何最好地解决的原因。
现在,我有一列 contentversions 表,这意味着对于活动版本的每次更改,我都必须运行更新并在所有版本上设置 active=false,然后更新以设置相关内容的active=true。
How can I solve the issue of content existing in multiple versions and multiple languages?
Each content can only have one active version in each language, and that's how I'm curious on how to best solve.
Right now I have a column of the contentversions table, which means for each change of active version I have to run a update and set active=false on all version and then a update to set active=true for the piece of content in question.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用与
content_contentversion_languages
结构相同的表activeversion
,但在(content_id, language_id)
上有一个唯一键和一个外键在所有列上,引用content_contentversion_languages
。将新版本标记为活动版本只需对此表执行一次 INSERT 或 UPDATE 操作。You could use a table
activeversion
with the same structure ascontent_contentversion_languages
, but with a unique key on(content_id, language_id)
and a single foreign key on all columns, referencingcontent_contentversion_languages
. Marking a new version as active requires just a single INSERT or UPDATE to this table.