在 MVC 中将字典数据库表映射到模型的方法

Posted

技术标签:

【中文标题】在 MVC 中将字典数据库表映射到模型的方法【英文标题】:Approach to mapping dictionary database tables to models in MVC 【发布时间】:2010-03-17 13:04:16 【问题描述】:

缺少一位程序员同行来讨论解决我的问题的正确方法,我决定问你。无论您使用哪种 MVC 框架/环境,您首选的将字典表映射到 MVC 范式中的模型的方法是什么?

我的问题是我有几个数据库表,它们仅用作字典,并与其他表作为外键相关。一个很好的例子是一个表request 有一个status_id,其中状态保存在一个单独的status 表中。

现在,后一个表需要映射到应用程序代码端的模型。我可以:

    将所有状态定义为常量,这样就可以在代码中引用它们,而不会到处戳那些可怕的“神奇数字”。但是,对字典(数据库端)的任何更改都需要修改代码。 完全省略 `status` 表,只定义有意义的常量以在代码中使用。优点:一个地方来统治他们。缺点:所有更改都需要深入研究代码,现在数据库具有“幻数”而不是真正的外键 尝试自动将状态转换到模型中,将“const_name”之类的字段添加到“状态”表中,并在加载模型时动态创建常量。这个似乎对我来说最有意义。

您介意分享您对这个问题的常用方法吗?

最好, 巴特克

【问题讨论】:

【参考方案1】:

如果它只是包含在数据库中的一组常量而不是代码,您可以让一个静态类加载status 常量供其他人使用。这样数据库和代码之间就没有重复,也没有幻数。

编辑:因为它是一个静态类,你可以让它延迟加载常量。在有人第一次请求状态值之前不要访问数据库。

【讨论】:

【参考方案2】:

我会说,如果您要经常更换它,最好使用桌子。否则静态类就可以了(例如,没有必要使用表格来存储性别或状态列表)。

【讨论】:

以上是关于在 MVC 中将字典数据库表映射到模型的方法的主要内容,如果未能解决你的问题,请参考以下文章

模型绑定

将表数据映射到 asp .Net MVC 中的 ViewModel 列表

在eclipse中将实体映射到连接的问题

在 ASP.Net MVC 5 中将 javascript 数组从视图传递到控制器

如何在 Spring MVC 中将请求映射到 HTML 文件?

在laravel中将虚拟数据添加到“联接表”的最佳方法是什么?