需要更好地设计我的数据库模式,更改特定行的请求值,table 中的列

Need a better design for my database schema, make change request value of a specific row, column in a table

我有一个案例,我想对 table 上的特定字段提出更改请求,其中将有两方,一方提出特定字段的变更请求,另一方提出接受它。

现在假设我有一个名为 'Deals' 的 table,当前字段为:

deals: investor_id, team_invested_id , investment_size, investment_type , pmv, etc... 

现在双方都可以请求更改 table 上的任何属性,并且请求必须得到对方的批准。

到目前为止我的解决方案是这样的,但我对此表示怀疑: 使用以下字段创建新的 table 'deals_change_requests':

deals_change_requests: id, deal_id, team_requested_id, column_name, new_value, approved.

这可能效果很好,但它迫使我以相同类型格式处理交易的所有属性...因为我应该只为 new_value 属性决定一种类型,到目前为止我应该是 VARCHAR看过...

有更好的解决方案吗?

我建议将其加入主table:

investor_id, team_invested_id , investment_size, investment_type , pmv, version, approved, team_requested_id
          1,                1,             1000,             BOND,  11,       0,        1,                 1
          1,                1,             1000,             BOND,  13,       1,        0,                 2

在上面的示例中,团队 1 创建了一项投资,PMV 为 11,并且已获得批准。还有来自团队 2 的更改请求,将 PMV 更改为 13,但尚未批准。

这意味着您不必弄乱数据类型,所有更改历史记录都存在于同一个 table 中。您显然可以包括日期以显示更改生效的时间。