页面/电子邮件内容架构

时间:2010-09-25 02:50:04

标签: php schema multilingual

我正在创建一个类似于yelp的用户内容网站。网站将支持15种不同语言的多语言。需要一些关于存储系统内容的建议,即:

  • 页面内容(所有默认页面 文字和菜单项)
  • 页面属性 (标题栏,元标记,如关键字, 描述等)
  • 电子邮件内容 (主题,标题,页脚 - 都是html 和文本版本)

出于性能目的,我觉得只有一个表可以用于所有这些,例如:ID,Eng,Fr,Es,Gr,...其中每列是一种语言,ID是用于关键字的关键字识别这个词。根据用户的语言会话,它将拉入匹配的单词以加载。

问题:

  1. 此设计是否会扩展为系统 内容增加到数千 网页?
  2. 易于编辑文字?
  3. 性能影响?
  4. 更好 基于此设计那里 需要吗?
  5. 任何其他类型的系统 内容我需要维护吗?
  6. 也适用于页面标题栏等文字 这是动态的 - 就像在 个人资料页面将是“用户已满 名称 - 网站名称)所有这些都可以 在DB或代码级别完成?
  7. 最大的问题 - 查找值,例如城市名称,类别名称等,它们位于自己的查找表中。那么要翻译它们,我是否会将语言列添加到这些表中,或者只将这些查找值cpy到内容表中?
  8. 平台:PHP / MySQL

1 个答案:

答案 0 :(得分:0)

问:当系统内容增加到数千页时,这种设计是否会很好地扩展?容易编辑文字?性能影响?根据这种需求,还有更好的设计吗?我需要维护任何其他类型的系统内容吗?

答:所有应用程序对大负载的响应都不同,因此没有任何直接答案。只要减少数据冗余并保持干燥(不要重复自己)。查询和代码的性能更好。

问:对于像页面标题栏这样动态的文本 - 比如在个人资料页面上它将是“用户的全名 - 网站名称”,所有这些都可以在数据库或代码级别完成吗?

答:您可以在数据库中使用它,但您可以创建缓存系统。因此,在db没有更改之前,您不要查询数据页面。通过这种方式,它看起来像静态页面,但同时是动态的。

最后,我会鼓励你使用像zend,codeigniter,cakePHP这样的标准框架。因为他们有更好的大型项目解决方案

  • 性能
  • 安全
  • 文档
  • 社区
  • 任何项目所需的预制和测试解决方案

所以使用框架,总是安全但它并不意味着从头开始项目不是。