リレーション ベースのデータベースを設計しようとしていますが、同時に時系列データを保存しています。
たとえば、私は1つのテーブルを持っています
CREATE TABLE [dbo].[Fund](
[FundID] [int] NOT NULL,
[FundName] [nvarchar](50) NULL,
[FundCurrency] [nchar](3) NOT NULL,
CONSTRAINT [PK_Fund] PRIMARY KEY CLUSTERED
)
最初の列の名前「Dates」を除いて、データを保存する別のテーブルがあります。他のすべては f+fundID、たとえば f1001 です。
CREATE TABLE [dbo].[FundData](
[Dates] [datetime] NOT NULL,
[f1001] [float] NULL,
CONSTRAINT [PK_FundData] PRIMARY KEY CLUSTERED
)
この単純な方法が効率的かどうかはわかりません。処理するデータはそれほど多くないためです。毎日の見積もり、最大 10 年間の毎日のデータ、最大 500 列。
しかし、私が直面している本当の問題は、入力 FundID と BeginDate と EndDate を使用して、日付を含む一連のデータを返す UDF を作成する方法です。または、FundID と Date を指定して単一引用符を 1 つ返すストアド プロシージャを作成する方法。
UDF は動的な列名を受け入れないため、これを実現する方法が本当にわかりません。データの保存方法を再設計するか、UDF を作成するスマートな方法を使用します。
事前にどうもありがとうございました