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