1

编辑:我换掉了我的结构实现,但我的问题仍然是一样的;即在创建 SvcRequest 记录之前首先创建一个 Publication 对象(如果它尚不存在)。

我得到了一个必须“修复”的数据库,并且对某个特定问题感到非常困惑。为了简单起见,我们有两个已经存在的表(重要的)。我花了一段时间才弄清楚两者之间的关系,最终决定采用传统的连接表如下:

                     Publications (id, SvcReqID, LogID)
                             /              \
                            /                \
               SvcRequest (id)              SvcProgressLog (id)

SvcRequest 和 SvcProgressLog 或多或少是同级表,它们都包含对父级的引用。这种奇怪的层次关系让我花了一段时间才弄清楚,现在我只需要一种方法来加入它们,这样就可以轻松地执行 CRUD 操作。

这里的过程如下:

  1. 一个出版物的服务请求进来了。
  2. 如果 Publication 存在 --> 更新相应的 Publication 记录。如果没有,请创建一个新的出版物。之后,根据从 Web 表单捕获的信息创建 SvcRequest 记录。(此处需要帮助)
  3. 最后,可以为存在但尚未记录的请求创建一个日志条目。

存在以下关系:

  • 出版物 --> SvcRequest :: 1 --> 许多
  • 出版物 --> SvcProgressLog :: 1 --> 许多
  • SvcRequest --> SvcProgressLog :: 许多 --> 许多 (-ish)

一如既往,我非常感谢您的帮助和智慧之言;)よろしく

4

2 回答 2

1

由于我们的数据库结构的复杂性以及我在这里称为 SvcRequest 表的所有支持表,我选择编写一系列可以单独运行的存储过程来“更新”(尽管实际上是插入)请求或由主 SP 调用以输入新条目。

经过数小时的思考和设计试验,这是我能想到的最佳解决方案。写完后我会发布一些示例代码,以便其他人也可以受益。:)

于 2011-09-14T19:25:17.353 回答
0

如果 link_id 不能用于关联 SvcRequest 和 SvcProgressLog 表,那么您需要将 SvcProgressLog 与 Publication 表取消关联,并将其直接关联到 SvcRequest:

出版物 >-----+ SvcRequest +-----< SvcProgressLog

于 2011-09-13T18:31:46.857 回答