【问题标题】:CRUD: Null record patternCRUD:空记录模式
【发布时间】:2018-07-24 09:55:18
【问题描述】:

使用简单的 CRUD UI,我们经常会遇到可能有空白的选择/下拉元素。这些最有可能用于建立实体和标准类型(查找值)之间的关系。

假设“以前不存在关联”和“当前不存在关联”之间的区别在域中不重要,通过拥有表示 null/none/not selected 的记录来避免处理异常的 null 值情况是否明智?

乍一看,这种类似于Null object pattern 的方法可能会有所帮助,但我可能遗漏了什么?

【问题讨论】:

    标签: java c# sql database null


    【解决方案1】:

    我们最近做出了类似的设计决定,但在用户没有选择任何查找值的数据库表中保留了空值。主要原因是查询要容易得多,因为我们不需要在 UI/后端代码或其他查询中重新建立 NULL/NONE/NOT_SELECTED 的概念。我们还尝试将空 GUID 用于 NULL 查找值 (000000-0000...),但最终决定放弃。

    【讨论】:

      【解决方案2】:

      Null 是一个非常酷的数据建模功能,如果您使用它,如果您在不需要时使用它,则需要额外的努力。

      如果“无”值与“未选择”值的处理方式不同(也就是说,您要做出的某些决定具有重要意义),则将 null 用作“未选择”,与 ' 分开没有'。

      如果您不打算在处理过程中区别对待“无”和“未选择”,请为这两种目的使用一个值。

      【讨论】:

      • 您认为使用“空记录”作为统一值有什么害处吗?
      • 我认为没有任何危害。 (重新阅读我的答案,我发现您可以做出不同的推断)。也许更简单的总结性陈述是:“不要使用 2 个不同的值,当单个值可以达到目的时。”
      • 我从未打算使用多个值,但“使用单个值”并没有说明 NULL 与空记录关联。这是我问题的核心。我看到使用空记录的优点是 UI 和后端更新过程必须考虑特殊情况的空白选项。
      猜你喜欢
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      • 1970-01-01
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多