3

大量のデータがあり、すべて「きれい」で正規化されたデータベースがあり (理由の範囲内で - EAV を使用)、データにアクセスして変更するためのストアド プロシージャがあります。

ユーザーがこのデータを検索および表示するためにダウンロードする WinForms アプリケーションもあります (挿入なし)。使用と更新を便利にするために、SQLite を使用してこのデータを保存してきましたが、これは非常にうまく機能します。

私はプロセス全体の更新に取り組んでおり、データの非正規化されたビューを使用して、すべてのプロパティを列として持つ 1 つのテーブルをユーザーに送信するか、同じスキーマを引き続き使用するかを考えていました。マスターデータベース?

私の最初の考えは次のとおりです。

非正規化されたビュー: 利点... データをクエリする簡単な方法を提供します (多くの結合を行っていないため、一連の列検索だけです。

短所... 2 番目のデータ アクセス レイヤーを管理する必要があります。確かに難しいことではないと思いますが、それでももう少し作業が必要です。

新しいプロパティが追加された場合は、スキーマを再度変更して、変更に対応する必要があります。一方、プロパティ バッグをクエリして、そこでフォームを操作するだけです。

同じスキーマ: 長所... マスター データベースと同じレイアウトであるため、更新は最小限で済みます。また、SQLite はストアド プロシージャをサポートしていないため、データ アクセス層を構築するときにも同じクエリを使用できます。

短所... ルックアップ コードなどの小さなテーブルがたくさんあるため、クエリを作成して DAL で管理するときに問題が発生する可能性があります。

どのように進めればよいですか?

4

1 に答える 1

4

基になるデータ自体ではなく、データのビューをクエリするようにアプリケーションを開発すると、DAL を変更する心配や必要なく、両方のシナリオで同じデータベースを維持できます。

于 2009-02-05T15:36:27.970 に答える