(这是我实际项目的一个非常最小化的版本,它有更多的表链接在一起,每个表都有更多的数据和列)。
- 您如何建议设置支持不同语言内容的内容管理系统的结构?以下方式是一个不错的选择吗?
在我当前的项目中,我有一个包含文章的数据库,这些文章由id、title和text列定义。标题和文本列是text_id列上表LanguageData的外键。该表包含整个项目的所有字符串。该表由id、text_id、text和language_id列组成。
例子:
Article : { id : 1, title : 1, text : 2 }
LanguageData : { id : 1, text_id : 1, text : "Title in english", language_id : 1 }
LanguageData : { id : 2, text_id : 1, text : "Tittel på svenska", language_id : 2 }
LanguageData : { id : 3, text_id : 2, text : "Text in english", language_id : 1 }
LanguageData : { id : 4, text_id : 2, text : "Texto en español", language_id : 3 }
- 我如何制作一个快速的 Web 服务来返回具有指定语言的文章?
在我的项目中,我还有一个 web 服务,它以 language_id 作为输入并返回所有添加了正确语言字符串的文章。为此,我使用实体框架连接到数据库,并且对于数据库中的每篇文章以及作为 LanguageData 外键的每一列,我调用一个方法:
GetLanguageString(text_id, language_id)
return LanguageData.First(ld => ld.text_id == text_id && ld.language_id == language_id)
- 当我想浏览 600 篇包含很多与 LanguageData 相关联的列的文章时,这似乎很慢。有没有更好的方法来做到这一点?此处未提及的某些列通常在文章之间重复(例如列类别)。如果我已经在字符串中搜索了相同的文本和相同的语言,我是否应该保存 lambda 问题的结果以便不需要再次执行它们?如果我使用 lambda 表达式或 LINQ,它会更重要吗?它们同样快吗?
我们很乐意收到有关该主题的一些文档。我是后端编程的新手,我似乎无法在网上找到有关此的信息。
非常感谢。