0

ユーザーがトランザクションのステータスを更新できる 3 つのトランザクション テーブルがあります。これらのテーブルは、ステータスが最後に更新されたときのユーザーの詳細、日時などをキャプチャします。

ユーザーがトランザクションのステータスを「X」に更新した場合、それらのトランザクションは翌日に選択する必要があるという要件があります。問題は..ユーザー「A」がステータスを「X」に更新すると、テーブルはユーザー「A」の詳細をキャプチャします。ユーザー「B」がステータスを「X」から「Y」に変更すると、テーブルはユーザー「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

また

----------------------------------
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 
4

2 に答える 2

1

別のテーブルを追加します。これには、取引履歴を確認できるという利点もあります。

私を信じてください-「彼ら」はいつかそれを必要としないと言い、彼らはあなたのところに来るでしょう、そして「この価値は間違っています. 誰が変えたの?」

于 2013-04-11T19:42:22.933 に答える
0

ログを記録する別のテーブル コール Transaction を追加することをお勧めします。そのため、それに対して行われたすべての変更をより簡単に取得できます。

于 2013-04-11T15:11:27.350 に答える