在bugtrackingsystem中,我想跟踪一些动作。更改状态,添加注释,更改优先级和其他操作等操作。
问题是,如何使用不同的参数存储这些不同的操作。例如,当有人更改状态时,需要保存状态更改,旧状态和新状态。但是当有人添加评论时,需要添加评论,并添加评论ID。
一种解决方案可能是将这些参数保存为纯文本。像“oldstatus =>新状态”,“评论001添加”。但这似乎并不可行。
有人知道这最适合的方式吗?
答案 0 :(得分:1)
您可以将实际状态存储在错误表中,并将状态更改历史记录保存在不同的表中:
changeid (pk) - ticketid (fk) - date - oldstatus - newstatus - username
评论通常也会出现在另一张表中:
commentid (pk) - ticketid (fk) - date - username - comment
检索数据时,您可以检索以下错误的所有注释:
select
from comments
where comments.bugid = 12
P.S。 (pk)=主键,(fk)是外键
答案 1 :(得分:1)
我希望在TaskInfoRevision
表中为每个更改保留一个单独的条目,包括状态,注释,属性等所有字段,然后确定应用程序代码中的更改,而不是DB本身。