【问题标题】:Handling many-to-many relationships in XPages/Lotus在 XPages/Lotus 中处理多对多关系
【发布时间】:2012-07-12 14:55:31
【问题描述】:

我有两种表格,公司和客户。一家公司可以有任意数量的客户,一个客户可以是任意数量的公司的客户。我希望能够做一些事情,比如列出给定公司的客户,或者列出给定客户雇用的公司。使用 Domino 数据库结构处理此问题的最佳方法是什么?

【问题讨论】:

  • 事物是什么意思?给猫剥皮的方法有很多种,每种方法都有其优点和局限性……性能?灵活性?易于实施?

标签: lotus-notes xpages lotus


【解决方案1】:

没问题。

为公司和客户创建分类视图。然后,将公司名称存储在每个客户文档上,并将客户名称存储在每个公司文档上。使用单类别嵌入式视图在每个表单上列出它们。单击嵌入视图中的名称会打开文档。

或者,为公司-客户关系创建第三种表单类型并使用它来填充嵌入式视图。

【讨论】:

  • 第三个“表单”选项是 Josh 建议的如果有很多到很多的方法。不需要表单,只需要文档和 UI 视图。我们为特殊需求服务组织建立了类似的东西。有兴趣可以联系我做demo。 -新手
  • @Newbs 如果没有单独的表格,那么它与第一个解决方案相同(将公司名称放在客户文档上,反之亦然)。拥有单独文档的原因是允许管理连接而无需编辑两端的文档。
  • +1 表示关系太多,这是避免文档中字段限制为 64k 的最简单解决方案。不必要的主文档保存也是一个好点。
  • @DavidNavarre - 我说你不需要“表格”,但是是的,你需要一个文件。 Notes 允许在没有表单的情况下创建文档。 XPages 也允许这样做。 Purests这个软件不喜欢,但是可以做,而且很强大。
  • @Newbs 在这种情况下,您添加了一个抽象级别(不是创建表单),除了证明它可以完成之外,几乎没有什么意义。如果您为关系创建文档并且只允许用户通过其他文档而不是直接修改它,那么您将不顾一切。拥有关系文档的优点之一是您可以直接对其进行编辑,那么为什么要取消它呢?
【解决方案2】:

首先一个问题:客户和公司之间有什么区别?一个关系可以简单地由一个多值字段 ClientOf 表示,该字段存储一个或多个其他公司的键。如果要查找 X 公司的所有客户,则需要一个分类视图,其中第一列中有 ClientOf 字段。

我想你的问题不是(将是)关系的创建以及维护。您必须自己维护所有内容,即当公司被删除时,您必须自己从 ClientOf 字段中删除对公司的所有引用。当您使用使用 @Unique 创建的密钥时,您不必担心公司的名称更改。另一方面,您总是需要进行额外的查找才能找到它的真实名称。

【讨论】:

  • 我怀疑关系来去往往比公司更名更频繁。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-22
  • 1970-01-01
相关资源
最近更新 更多