【发布时间】:2011-09-13 18:08:01
【问题描述】:
编辑:我换掉了我的结构实现,但我的问题还是一样;即在创建 SvcRequest 记录之前首先创建一个 Publication 对象(如果它尚不存在)。
我得到了一个必须“修复”的数据库,并且对某个特定问题感到非常困惑。为了简单起见,我们有两个已经存在的表(重要的)。我花了一段时间才弄清楚两者之间的关系,最终决定采用传统的联结表如下:
Publications (id, SvcReqID, LogID)
/ \
/ \
SvcRequest (id) SvcProgressLog (id)
SvcRequest 和 SvcProgressLog 或多或少是同级表,它们都包含对父级的引用。有一种奇怪的层次关系让我花了一段时间才弄清楚,现在我只需要一种方法来加入它们,这样就可以轻松执行 CRUD 操作。
这里的流程如下:
- 一个出版物的服务请求进来了。
- 如果出版物存在 --> 更新相应的出版物记录。如果没有,请创建一个新的出版物。之后,根据从网络表单捕获的信息创建 SvcRequest 记录。(此处需要帮助)
- 最后可以为存在但尚未记录的请求创建日志条目。
存在以下关系:
- 出版物 --> SvcRequest :: 1 --> 许多
- 出版物 --> SvcProgressLog :: 1 --> 许多
- SvcRequest --> SvcProgressLog :: Many --> Many (-ish)
一如既往,我非常感谢您的帮助和智慧之言;) よろしく
【问题讨论】:
-
你能否从传入的服务请求中判断发布是否存在?
-
@Catcall:很遗憾,不能,必须先对照出版物表进行检查。
标签: sql-server tsql stored-procedures relational-database junction-table