添加新表或扩展表

时间:2013-04-11 15:00:18

标签: sql oracle

我有三个交易表,用户可以在其中更新交易状态。 这些表捕获上次更新状态时的用户详细信息,数据时间等。

我有一个要求,即如果用户将交易状态更新为“X”,则应在第二天选择这些交易。 现在的问题是..如果用户'A'将状态更新为'X',表格将捕获用户'A'的详细信息,现在如果用户'B'将状态从'X'更改为'Y', table将捕获用户'B'详细信息(最后更新状态的用户),用户'A'详细信息将丢失。 第二天,由于状态发生变化,我无法选择该交易。

添加包含状态和用户详细信息的列的新表是否更好?当有人将状态更改为“X”时,将在其中插入记录。 或者,当状态更新为“X”时,现有事务表中的新列更好地捕获用户详细信息?

-------------------------
Existing Table  design
-------------------------
------------------------------------------------------------------------
Key | Status | User name | User ID | Update_Dt |Other Columns.........
-------------------------------------------------------------------------
1   |    Y   |      B    |    2    |  2013-01-10


-------------------------
Adding new Table
-------------------------
------------------------------------------------
Key | Status | User name | User ID | Update_Dt |
------------------------------------------------
1   |    X   |      A    |     1   |  2013-01-10

OR

----------------------------------
Extending Existing Table  design
---------------------------------
--------------------------------------------------------------------------------------
Key| Status|User_name|User_ID|Update_Dt|X_Stat_User_Name|X_Stat_User_ID| X_Stat_Upd_Dt|other columns....
---------------------------------------------------------------------------------------
1  |   Y   |   B     |    2  |2013-01-10|    A          |       1      | 2013-01-10 

2 个答案:

答案 0 :(得分:1)

我会添加另一张表。这也有一个优点,你可以看到交易的历史。

相信我 - '他们'说他们有一天不需要它,他们会来找你,'这个价值是错误的。谁改变了?'

答案 1 :(得分:0)

我建议添加另一个表调用Transaction,你可以在其中登录它。因此,可以更容易地完成对其进行的所有修改。