想象一下,我正在创建一个非常简单的错误跟踪系统。我有一个错误列表,目前在数据库中看起来像这样:
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
在这里,我在第一个表中列出了错误列表,该列表链接到第二个表中最新版本的错误。revisionGroup 列没有链接到任何东西,我只是取当前存在的最大值,并在需要插入新错误时递增。
我的数据库设计非常不稳定,但我已经考虑过这一点,并相信它应该可以工作。这看起来像是最好的做事方式吗?有没有更好的方法?
不错的问题格式:)
好吧,既然您只想要最新的错误,为什么不放置时间戳而不是版本。它将为您节省一个额外的查询,当您输入新错误并查找最新版本时,您将执行该查询。除非您的业务规则规定了版本号的要求。我相信你说不是这样,那么我认为你当前的设计没有任何其他问题。
在设计数据库时,请始终记住...使用处理器进行计算比任何磁盘 I/O 都要快得多。如果可能且可避免,您应该避免任何额外的读/写。
祝你好运!