技術的に間違っている可能性があることを理解しているため、まず私のタイトルについてお詫び申し上げます。
現在、複数のテーブルを持つデータベースがあり、そのうちの 4 つがこの例に関連しています。
FORMS
FIELDS
ENTRIES
VALUES
以下は表の短縮版です
Create table Form_Master
(
form_id int identity primary key ,
form_name varchar(255) ,
form_description varchar(255),
form_create_date date ,
)
Create table Field_Master
(field_id int identity primary key,
form_ID int foreign key references Form_Master(form_id),
field_name varchar(255),
type_ID int
)
Create table Entry_Master
(
entry_id int identity primary key,
entry_date date,
form_id int foreign key references Form_Master(form_id),
)
Create table Value_Master
(
value_id int identity primary key,
value varchar(255),
field_id int foreign key references Field_Master(field_id),
entry_id int foreign key references Entry_Master(entry_id),
)
これらのテーブルの目的は、情報を取得および取得する動的な方法を作成することです。フォームはテーブル、フィールドは列、エントリは行、値はセルです。
現在、フォームから情報を取得しているときに、field_master などの列を含む一時テーブルを作成し、フォームにリンクされているすべてのエントリとそれらのエントリにリンクされている値を選択し、それらを一時テーブルに挿入します。作成したばかりです。
一時テーブルの理由は、データを整理された形式に再構築し、DataGridView
.
私の問題はパフォーマンスの 1 つです。フォームが 20 を超えるフィールドまたはフォームにリンクされたエントリが 100 を超えると、上記のテーブルの作成が遅くなります。
私の質問は次のとおりです。
上記の一時テーブルの形式で field_master から直接データを選択する方法はありますか?
データベースの設計を再考する必要があると思いますか?
私がやろうとしていることを行うためのより簡単な方法はありますか?
Google の使い方は知っていますが、この例では正確に何を検索すればよいかわかりません。そのため、キーワードでも構いません。