database-design - 如何为具有多语言支持的内容管理系统 (cms) 设计数据库架构?

标签 database-design content-management-system multiple-languages

我要建立一个支持多语言的网站,我需要有能力控制文章、公司、产品的工作流程。所有这些都具有多语言支持和多版本控制。
有没有人已经有了解决方案,或者我需要从头开始?

最佳答案

由于您的问题非常广泛,我将尝试通过一个简单的示例为您提供答案。这可以扩展到您要存储的每个实体。让我们假设您有一个文章实体。
文章(文章ID、langID、ENUTitle、ENUContent、authorID)

默认情况下,您可以将英语内容存储在主表中。相同的内容或翻译的内容可以存储在单独的语言翻译表中。

Article_Translation(ID, articleID, langID, langTitle, langContent)

内容示例

insert into article values ('art101','ENU','New Website for Developers','Stackoverflow is new and useful','BKM')

Insert into article_translation (1023, 'art101','FRA','nouveau site Web pour les développeurs','stackoverflow est nouveau et utile','BKM')

Insert into article_translation (1024, 'art101','SPA','nuevo sitio web para desarrolladores','Stackoverflow es nuevo y útil','BKM')

根据您的用户语言偏好,可以从文章表或文章翻译表中显示内容

一般来说,对于每个需要翻译的实体,您都需要一个主表和语言翻译表。

关于database-design - 如何为具有多语言支持的内容管理系统 (cms) 设计数据库架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1170545/

相关文章:

mysql - 即使只有一对多关系,使用关联表也会带来或更少的性能提升

php搜索模块

php - 如何更改 Opencart 中的主题布局?

c++ - 在多大程度上允许将 C 和 C++ 结合使用?

.htaccess 多语言(别名 URL/友好 URL)

design-patterns - 跟踪用户代币/硬币的策略

sql - 具有非零基数的多对多关系

java - 是否完全使用 Adob​​e CQ5 (AEM) 编程进行开发?

interop - 多种语言如何在一个项目中交互?

database - 这是数据库的良好设计吗?