1

想象一下,我正在创建一个非常简单的错误跟踪系统。我有一个错误列表,目前在数据库中看起来像这样:

ID  Title           Details         CreatedDate
1   someTitle       someDetails     26/09/2012
2   otherTitle      otherDetails    27/09/2012

我希望将版本控制添加到该表中,以便存储每个单独错误的历史记录。我在想这样的事情:

ID  BugID   CreatedDate
1   1       26/09/2012
2   3       26/09/2012


BugID   Title           Details           RevisionGroup
1       someTitle       someDetails       1
2       otherTitle      otherDetails      2
3       otherTitle      changedDetails    2

这里我有第一个表中的 bug 列表,它链接到第二个表中的 bug 的最新版本。revisionGroup 列没有链接到任何东西,我只是取当前存在的最大值并在需要插入新错误时递增。

我的数据库设计非常不稳定,但我已经考虑过这一点并相信它应该可以工作。这看起来像是处理事情的最佳方式吗?有没有更好的办法?

4

1 回答 1

1

很好的问题格式:)

好吧,既然你只想要最新的错误,为什么不放一个时间戳而不是一个版本。它将为您节省一个额外的查询,当您输入新错误并查找最新版本时会执行此操作。除非您的业务规则规定了版本号的要求。我相信你说情况并非如此,那么我认为你当前的设计没有任何其他问题。

设计数据库时,请始终记住……使用处理器进行计算比任何磁盘 I/O 都要快得多。如果可能并且可以避免,您应该避免任何额外的读/写。

祝你好运!

于 2012-09-27T14:10:50.443 回答