0

アプリケーション フィールドを含む「フィールド」というテーブルがあります。このテーブルには、各フィールド (TableName、ColumnName、JoinType (inner/outer)) のメタデータを格納します。

私は何かが働いていますが、私が望むほどきれいではありません。

誰もこれに取り組んだことがありますか?

より良い慣行に関するいくつかのアイデアを探しています。

4

2 に答える 2

1

動的データ/フィールドは常に楽しいものです。

私が以前にこれにアプローチした方法は、必要なフィールドを定義するテーブルを用意することです。非常に基本的な例は次のとおりです。

GroupId int, <- 共通の目的のためにフィールドをグループ化できます

FieldId int, <- 結合の一意の識別子

FieldName varchar(100), <- 明らか

DataType int <- テキスト、電話、電子メールなど、特別な処理特性を持つ可能性のある使用可能なタイプを含むテーブルに結合します。

DisplayOrder int, <- フィールドが画面に表示される順序。

次に、実際のデータを保持する別のテーブルがあります: EntryId int, <- 値を一意のエントリ ポイントにグループ化します。GroupId int、FieldId int、Value varchar(max) <-データが含まれると思われる数値を使用します。または、適切なバージョンの SQL サーバーがある場合は max

最後に、レポート作成を容易にするために、実際のデータを 90 度回転させるビューを動的に生成します。

このようにすることで、基礎となるコードを変更することなく、何を収集するかについて多くの自由が得られます。

于 2009-05-14T14:31:57.603 に答える
0

私は過去に、テーブルを自動的に結合し、それらを組み合わせて動的レポートを生成できるクエリ ジェネレーターを作成しました。

私は、今日、NHibernate を取ると思います。これは ORM ですが、結合を管理し、メタデータと非常によく似たマッピング データに従ってクエリを作成します。

もちろん、NHibernate でカバーされていない特定のことを行う必要があります。しかし、それは素晴らしいスタートです。

于 2009-05-14T14:28:54.567 に答える