0

我必须设计一个数据库来处理表单。

基本上,一个表格需要(恰好)7个人,一个一个。每个人都可以同意或拒绝表格。
如果一个人拒绝,链条就会停止,随后的人甚至不会收到有表格的通知。

现在我想到了这 3 个表:FORM、PERSON 和 RESPONSE。但是,我的第一个解决方案听起来太重了,因为每个表单最多可以有 7 个响应。

v1
在这里,我们中间有一张桌子。这意味着每个成功的表单在表 RESPONSE 中有 7 行。

v2
在这里,我们直接在表单中提供了响应信息。它看起来很丑,但至少让一切都尽可能单一。不利的一面是,我无法跟踪回复日期,但我认为这对此事并不重要。

你对此有何看法?我觉得他们两个都错了,我不知道如何解决这个问题。
如果这很重要,我将使用 Oracle 9。

4

2 回答 2

3

在这两者中,我提倡第一种选择,因为如果业务流程发生变化,它会更加灵活,并且需要(比如说)9 个响应

如果您担心存储,我预计平均而言,存储“最多”7 个较小形式的副本比存储较大形式的单个副本需要更少的空间。

于 2010-04-15T11:07:58.713 回答
2

第一个解决方案似乎更好。那么您可以通过执行简单的 SQL 来检查它是否被某人反对:...WHERE response.isapproved=False。否则,您必须检查主表中的所有 7 个字段。

于 2010-04-15T11:09:42.950 回答