現在正規化されていないMS Accessデータベースを書き直し中で、設計が非常にうまくいかない。この再設計の私の問題は、テーブル間で日々データを移動する方法を取り巻くものです。SQLサーバで既存のMS Accessテーブルを再設計する方法
現在の設定はこれに似ています。私はテーブルに読み込まれるテキストファイルを持っています。必要なレコードがTable1に追加され、翌日にはTable1のデータの一部がTable2にロードされます。 Table2は、その日のインポート後にTable1を更新するために使用されます。ファイルには、表1を更新し、フィールドに6/2/11に
6/2/11
Step 1 Step 2 Step 3
Table1 > Table2 File > Table1 Table2 > Table1
field1 field1 newdata1 field1 newdata1
field2 field2 newdata2 field2 newdata2
に移入されます6/1/11で
6/1/11
File > Table1
field1
field2
、最初のステップは、フィールド1 /フィールド2 GETはtable2のに移動していることである(A一時テーブル)。次に、table1からデータを削除し、ステップ2でその日からファイルをインポートします。ステップ3では、account2が存在する場合、table2のデータを使用してtable1の更新を実行します。基本的には、アカウントが存在すれば、今日のデータを昨日のデータに転送しています。
私の新しいデザインでは、私はこのようなテーブルを持っています。テーブルのプライマリキーは、BusinessDateとAccountとなります。なぜなら、これらのキーは毎日異なるからです。
CREATE TABLE [dbo].[Table](
[BusinessDate] [smalldatetime] NOT NULL,
[Account] [int] NOT NULL,
[Guid] [uniqueidentifier] NOT NULL,
[InitialAmount] [money] NULL,
[LetterDate] [smalldatetime] NULL,
[LetterType] [varchar](50) NULL,
[Status] [varchar](50) NULL,
[Reason] [varchar](50) NULL,
[FollowUpDate] [smalldatetime] NULL,
[LastModifiedBy] [varchar](50) NULL,
[LastModifiedDate] [datetime] NULL
) ON [PRIMARY]
アカウントが追加された場合6/1、その後は、私は上記のフィールドに6/1からのデータを使用して更新を行うことになる6/2にインポートしました。私は毎日このような種類のコピーデータを続けていくことは悪い設計であると言われています。しかし、私は日々の記録が新しいと考えられるので、これをどのように実装するのか分かりませんが、元のデータニーズのいくつかは将来のすべての項目に付随しています。
このタイプのセットアップは現在の設定全体で使用されており、私はそれをどのように設計するのか困惑しています。誰もがこのデザインを進める方法に関する提案を提供できますか?これは説明が難しいので、明確でない場合はお尋ねください。
EDIT:私の問題の
パートは私が任意の日のために前方に移動します詳細情報にアクセスできるようにする必要があるということです。アカウントに初期金額の8/1/11に入っているアカウントがある場合、ユーザーはステータス、文字タイプを割り当てます。そして同じアカウントが8/2/11に来たら、8/2の出発点は8/1の終わりの値です。彼らはその日のアカウントを処理します。アカウントは8/2に開始されますが、何もせずに昨日の値から開始します。
ユーザーは、8/1のデータにアクセスして終了日の値を確認する必要があります。
例:
- 8/1/11アカウント1234567890はの借方に追加されます - 見直し=担当者がステータスを割り当て、$ 10の理由=問題をチェック
- 8/2/11アカウント1234567890取得します
- 8/2/11 - ユーザーは口座1234567890のデータを借方$ -50で処理し、ステータス=解決済み、理由=なしを変更しました
- 8/3/11 - ユーザーが1234567890のアカウントの営業日8/1/11の検索を実行するeステータス=レビューあり、理由=チェック問題あり
詳細情報が役立ちますように。非常に長い説明を申し訳ありません。
あなたといくつかのことを確認したいだけです。 - この「コピーフォワード」を使用する必要がないようにデザインを簡素化しようとしていますか? - Table1の終了状態は、既に存在するレコードのTable2のデータと、存在しないレコードのTable2のデータが含まれていることです。 –
はい、それは理想的なセットアップですが、私はそれを可能にする方法がわかりません。ユーザーは、レコードがテーブル内にある毎日のデータを検索できる必要があります。さらに、各レコードの残高は毎日違っており、それを見ることができる必要があります。 – Taryn
わかりましたので、私の理解を要約しましょう。Table1には今日のデータが含まれ、Table2には前日のすべてのデータが含まれています。すべてのアカウントの詳細が含まれているファイルを毎日(他のシステムから推測していますが)毎日作成していますか?毎日、Table1はあなたの履歴Table2に移動され、Table1はファイルの内容に置き換えられ、そのデータはTable2のデータによって上書きされますか?それが正しいとすれば、今日のTable1のデータとTable2のデータの昨日の違いは何ですか? –