【问题标题】:Dynamic MVC Routing Removing Id With Efficient Database Lookup使用高效数据库查找的动态 MVC 路由删除 ID
【发布时间】:2012-06-10 07:59:50
【问题描述】:

我有一个 MVC 3 应用程序,其中我想要不包含控制器或键名的动态 Url。一个很好的例子是,如果我有一个博客,并且用户添加了新帖子。

假设用户创建了一个名为

的帖子

我的博文

我有一个方法可以创建一个 url SLUG 并将其与条目一起存储在数据库中,所以我希望 Url 是

/my-blog-post

现在在 url 中没有控制器或键名?如何使用 MVC 路由实现这一点?目前,我正在通过将 Url 与 /my-blog-post_1234 之类的 ID 匹配并使用流利的 nhibernate 将该 ID 作为 DB 查找键来做到这一点,但是一旦我删除了ID?

因为我仍然可以获得字符串/slug,但这意味着我现在必须根据字符串“my-blog-post”进行 SQL 查找?我读过这篇文章效率不高,可能会影响速度,其中一些标题可能很长。

我听说有人谈论自定义路由表?这对我有帮助吗?我想主要是以最快最有效的方式从数据库中获取数据。

非常感谢任何帮助/指针。

【问题讨论】:

    标签: sql-server asp.net-mvc asp.net-mvc-3 fluent-nhibernate asp.net-mvc-routing


    【解决方案1】:

    MVC 框架在这里不会提供任何帮助。您的要求是通过 slug 进行查询,所以这就是您需要在数据库中执行的操作。

    您只需要确保您在数据库中的该列上有一个索引,以确保查询不需要进行表扫描。

    【讨论】:

      【解决方案2】:

      听起来您真正想要的是文档数据库。再加上MVC。我强烈推荐ravendb,

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-01
        • 2013-04-08
        • 2015-03-02
        • 2010-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多