gpt4 book ai didi

asp.net-mvc - mvc dot.net 模型的多语言数据库模式

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:27 24 4
gpt4 key购买 nike

我们过去用经典的 asp 开发了一些网站,从公司展示网站到 eshops。所有这些都是在多语言环境 (el, en) 中开发的,其中大部分。从数据库 View 中,我们选择了以下模式。例如,对于产品表,我们有两个相关表,一个没有语言依赖字段,另一个用于具有一对多关系的语言依赖字段。

CREATE TABLE ref_language (
Code Char(2)NOT NULL,
Name Varchar(20) NOT NULL,
PRIMARY KEY (Code)
);

CREATE TABLE app_product (
Id Int IDENTITY NOT NULL,
PRIMARY KEY (Id)
);

CREATE TABLE app_product_translation (
ProductId Int NOT NULL,
LanguageCode Char(2) NOT NULL,
Description Text NOT NULL,
FOREIGN KEY (ProductId) REFERENCES app_product(Id),
FOREIGN KEY (LanguageCode) REFERENCES ref_language(Code)
);

为了重新创建产品模型,我们使用存储过程来连接所请求语言的两个表。现在我们要进入 dot.net mvc 模型。我们想知道是否有更好的方法,最适合 mvc 模型。

最佳答案

这取决于您的要求,但您可以只创建一个类来加载和缓存内存中的字幕,使用 EF 加载它们。使用静态类或最好使用 ASP.NET 缓存。

如果您在客户端执行动态操作,则在必要时通过 WebAPI Controller 的 MVC 公开字符串。

为了使这更容易,我会将您的翻译与架构中的产品分离。使您的翻译具有通用性。

只有一个名为 app_translation 的表,其中包含 Id、LanguageCode 和 Translation 字段。然后在需要翻译标题的任何表格上引用 Id。

要强制引用完整性,您还可以拥有一个包含单列和唯一约束的 app_translation_identifier 表。然后从 app_translation.Id FK 到 app_tranlsation_identifier.Id。并且在 app_translation 上还有一个唯一键用于 Id 和 LanguageCode。

关于asp.net-mvc - mvc dot.net 模型的多语言数据库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com