【问题标题】:What CRUD resources should be provided for a database template table?应该为数据库模板表提供哪些 CRUD 资源?
【发布时间】:2011-10-11 05:59:36
【问题描述】:

想象一个 Web 应用程序来跟踪一次阅读多本书的作业。例如,如果书籍 A 和 B 有 16 章,而书籍 C 有 32 章,那么要在 16 周内完成所有三本书,一个人需要每周阅读书籍 A 和 B 的 1 章,以及书籍 C 的每周 2 章.

当用户创建自己的阅读计划时,应用程序将复制阅读计划模板以创建每周的实际作业。每个分配将包含基于用户提供的开始日期的到期日期。每个作业也将以一对多的方式链接到该周要阅读的每一章,以便用户可以跟踪他们每周需要阅读的四章中每一章的每章进度。

问题

  • 我是否应该为分配提供创建 CRUD 资源,即使用户不会创建单独的分配?
  • 我是否应该只为阅读计划提供创建 CRUD 资源,然后将模板分配复制到该用户的阅读计划分配?

这是一个 Ruby on Rails 3.1 应用程序。

【问题讨论】:

    标签: ruby-on-rails database-design crud


    【解决方案1】:

    除非您真的时间/资源有限,否则我建议提供直接的 CRUD 功能,即使它们可能仅限于某些管理员/超级用户配置文件。

    根据我的经验,无论设计多么出色,应用程序迟早都需要一些快速而肮脏的绕过功能来直接修改较低级别的数据。

    【讨论】:

    • 我完全同意。总有一些事情出现在某个地方,根用户需要快速而肮脏地访问这样的 CRUD 功能。无论如何,搭建所有这些东西都是轻而易举的事,为什么不呢?您也可以随时将身份验证添加到 crud 功能以限制访问。
    【解决方案2】:

    您应该将用户体验 (UX) 集中在用户想要/需要做的事情上:创建 reading plans.

    用户不关心(也不应该关心)您对业务问题的内部架构建模。

    复杂输入的一个常见模型是“向导”,当用户填写小表格或回答问题时,它会引导用户完成一系列连续步骤。这可能会有所帮助。

    您可能需要为各种表添加额外的 crud 接口,以供您自己的管理使用。但是对于用户自己来说,关注他们对问题的看法,而不是你对问题的看法。

    如果他们想出一个由许多作业组成的阅读计划,那么这些作业可以作为计划的一部分对他们来说是可见的。 -- 但是将作业作为可扩展的部分放在每个阅读计划的单个 html 页面上 -- 人们很难在屏幕之间保持精神状态。

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多