問題タブ [temporal-database]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
172 参照

sql - SQL Server で複数のテーブルを含むタイムラインを作成する

次の3つのテーブルがあります。

私が見つけようとしているのは、このすべてのデータを単一のテーブルに結合する最適な方法です。これは、本質的に各ジェダイのタイムラインです.

この場合の最終的なテーブルは次のとおりです。

今、私はこれに対する解決策を考え出しましたが、この状況ではうまく機能するカーソルを使用しますが、作業しているデータが非常に大きい場合は理想的ではありません.

SQL Server 2012 を使用しています。

余談ですが、これは「島」の問題の例ですか?

0 投票する
1 に答える
58 参照

sql-server - 外部キー制約を維持しながら、有効期間が異なるエントリ

各エントリが異なる時間有効性を持つことができるいくつかのテーブルがあります。エントリは次のようになります: (Id, ValidFrom, ValidTo)。同じ ID を持つが有効性が異なるエントリがさらに存在する可能性があります。(有効性は重複してはなりません)。現時点または将来の時点で挿入/削除/更新操作を行う必要があります。

これはすべてアプリケーションのビジネスロジックで処理できますが、外部キーを使用して他のテーブルからこのテーブルを参照したいと考えています。

テンポラル テーブルがその方法である可能性があることがわかりましたが、小さな問題があります。SysStartTime 列と SysEndTime 列は、INSERT/UPDATE の時刻によって自動的に決定され、挿入/更新時には設定できません。

外部キー制約を許可しながら、各エントリの有効性情報をデータベース テーブルに格納する方法はありますか? その要求は合理的ですか?

0 投票する
3 に答える
6098 参照

sql-server-2016 - SQL Server 2016 テンポラル テーブルで削除されたレコードをクエリする最良の方法は何ですか?

SQL Server 2016 テンポラル テーブルを調べていますが、現在削除されているすべての履歴レコードを効率的にクエリする方法が見つかりません。

一時的なテーブルでは冗長だと感じているため、論理的な削除や「削除済みアイテム テーブル」への移動は避けたいと考えています。

これは、効率的な方法でテンポラル テーブルを使用して実現できますか?

0 投票する
1 に答える
328 参照

google-cloud-datastore - Google Cloud Datastore での時系列データ管理

Google Cloud Datastore で一時データを管理するための API (休止状態など) はありますか? 基本的に、データストアでバイテンポラル データを維持する必要があります。これを簡単に管理するために使用できる API はありますか?

0 投票する
0 に答える
696 参照

sql - SQL テンポラル テーブルと EF Code First の移行

ここ ( https://github.com/aspnet/EntityFramework/issues/4693 ) で、テンポラル テーブルのサポートを EF に導入することについて、特にコードを最初にコメントしました。

サポートされていないときにこれをどのように達成できるかについて、誰かが解決策を持っていますか? 純粋なコードを最初に使用するアプローチを削除したくないので、コードを介して一時的なストレージ用のテーブルを設定するのが理想的です。

私が推測する 1 つの方法は、リポジトリ レイヤー コードでヘルパー メソッドを実行して、必要な SQL クエリを吐き出すことです。空の移行を追加してから、関連する SQL コマンドを追加するだけですか??

皆さんはどう思いますか?

0 投票する
1 に答える
204 参照

tsql - SQL Server 2016 - System_Versioned テーブル - 意味のある SysStartTime および SysEndTime フィールドを持つ既存のテーブルを再作成します

と の 2 つのテーブルがEventsありEventsLogます。以下Eventsに表を示します。

ここに画像の説明を入力

テーブルは、テーブル内の UPDATE のトリガーを介してテーブルEventsLogに加えられた変更の履歴を保持するために使用されます。EventsEvents

Temporal テーブルが SQL 2016 に追加されたため、system_versioning を使用して、Eventsテーブルへの変更のログを保持する必要があります。

EventsTemporal既存のデータを移行するための新しいテーブルをセットアップしました。EventsTemporal_Historyテーブルはうまく機能しており、EventsTemporal

ただし、SysStartTimeand をオーバーライドすることはできませんSysEndTime。現在default、INSERT ステートメントを実行するときにのみ、これらのフィールドに適用できます。


問題は、可能な方法を使用して、テーブルを利用するために意味のある を挿入できるようにフィールドSysStartTimeとフィールドをオーバーライドできるかということです。SysEndTimedatetime2EventsTemporal_History

これが現在のEventsTemporalテーブルの外観です。フィールドに注目してSysStartTimeください。これらのフィールドに独自の「タイムスタンプ」を入力できるようにし、SQL のデフォルトを使用しないようにしたいと考えています。

ここに画像の説明を入力

理想的には、以下のようにこれらのフィールドに入力できるようにしたいと考えています。

ここに画像の説明を入力

0 投票する
0 に答える
196 参照

sql - Teradata でのビュー作成中の一時的なエラー 9330

VALIDTIME 列と TRANSACTIONTIME 列が存在するテーブルがあります。

そして、ビューデータベースには上記のテーブルのビューがあります。

上記のオブジェクトは既に存在しており、それらに触れることはできません。

ここで、上記のビューにビューを作成する必要があります。この新しいものは、後で多くのビューが構築されるテーブルとして機能することになっています。

だから、今のところ問題ありません。これで別のビューを作成しようとすると、表示されますFailure 9330 ValidTime qualifier requires at least one table with ValidTime

これを解決するための助けに感謝します。