1

管理ユーザーが定義したカスタム フィールドを使用してフォームを動的に作成する方法を構築することを検討しています。次のように、いくつかの異なるデータ型があります。

varchar(200)varchar(max)Dateintなど...

一般的なフォーム送信情報を保持する名前のテーブルformCollectedDataを作成し、ユーザーがフォームに入力した各フィールドの行を持つ別のテーブルを作成する予定です。

データベース構造に関しては、次のように、入力されたすべてのフィールドを格納する 1 つのテーブルを使用できます。

ここに画像の説明を入力

データを収集したフォーム要素に基づいて、一度に実際にデータを保存するのは、これらの null 許容フィールドの 1 つだけです。

または、データ型ごとに個別のテーブルがあります

ここに画像の説明を入力

主に結合などを簡素化するため、データ型ごとにnull可能なフィールドを持つテーブルを1つだけ持つことに傾いていますが、それらを個別のテーブルに分割することが利点であるかどうかについて他の意見を得たいと思いますロングラン。何かご意見は?

今のところ、毎日数百のフォームが送信される可能性が高く、各フォームには通常 10 個のフィールドがあります。

私は C# の世界にいて、Linq を使用する予定です。

4

1 に答える 1

0

あなたは意見を探しているので、ここに私のものがあります。

ここで複数のテーブルを作成する利点は、null値を回避できることです。この記事http://www.sql-server-citation.com/2009/12/common-mistakes-in-sql-server-part-4.htmlで説明されているように、null値はディスク領域を占有します。また、(データベース設計の観点から)nullがたくさんあるテーブルがあることもあまりセクシーではありません。

正直に言うと、非常に多くのテーブルを処理するのは非常に難しい場合があるため、テーブルを頻繁に手動でクエリする必要がある場合(特に挿入と更新の場合)、1つのテーブルのみを使用します。そして、年間約40K行の場合、これはそれほど大きな問題ではありません。

これが今のあなたの電話です、美しい方法か便利な方法のどちらかを選んでください:-)

于 2012-11-15T17:16:29.440 に答える