2

データベース設計に影響を与えるエンドユーザーによる「一部」のカスタマイズを必要とするアプリケーションを開発しています (パラメーター化を超えて)。

現在、このアプリケーションは、実行時に既存のテーブルまたは新しいテーブルの新しい列を操作することをサポートしています。ただし、エンド ユーザーはテーブルを変更することはできず、すべての設計作業は Microsoft SQL Server Magament Studio を使用して行う必要があります。

私の質問は次のとおりです。この機能を実装するコントロール (またはツール) はありますか? アプリケーションに組み込みたいのですが、外部ツールであればそれほど悪くはありません。

私が欲しいのは、ユーザーが列のリポジトリ (名前、タイプ、サイズ) を定義できるツールです。たとえば、次のようになります。

  • CustomerCode、BIGINT、該当なし
  • 顧客名、Varchar、50

次に、これらの事前定義された列を追加して、テーブルまたはビューを作成または変更します。その下で、必要な SQL スクリプトを実行するか、SMO (SQL 管理オブジェクト) を使用する必要があります。

更新しました

現在、このアプリケーションは WinForms で動作しますが、WPF / ASP ソリューションを歓迎します。

エンドユーザーとは、アプリの管理者を意味しますが、プログラミングのスキルはありません。

目的

目的は、SQL Server Managment Studio を使用せずに、独自のアプリケーションから機能を拡張およびカスタマイズできるようにすることです。

ERP を使用している場合を想像してみてください。たとえば、GPS の場所、ロゴ、CEO の写真など、アプリケーションが本来意図されたものではなく、空きフィールドがないことを顧客テーブルに通知したいユーザーとして、

もちろん、一部の上級ユーザーに SSMS Express のインストールを提案することはできますが、それでは自由度が高すぎます。それもITツールだと思います。私が望んでいたのは、アプリケーションの独自のフレームワークからアプリケーションを変更する機能を開発することでした。

独自のアプリケーションから実行できる場合は、いくつかの制御を実行できます。

  • X というテーブル フィールドが常に同じ型で定義されることを確認します。
  • カスタマイズできないフィールド (アプリケーション フィールド) を変更する機能を無効にします。
  • ...
4

3 に答える 3

1

アレックス、データベースの設計を実際に変更することなく、データベースに新しい情報を追加できる柔軟性をユーザーに与えるようにすべきだと思います。

EAV モデル (entity-attribute-value) を見ることができます。これにより、顧客テーブルの設計を変更せずに顧客に新しい属性を追加する柔軟性が得られます (例)。

良い例の 1 つが Magento です。彼らは EAV (entity-attribute-value) で素晴らしい仕事をしましたが、この設計モデルがパフォーマンスに少し影響を与えることを知っておく必要があります (または、実装方法に大きく依存します)。

于 2012-08-08T16:36:04.583 に答える
0

このようなコントロールはないようですので、0からスクラッチさせていただきます。

EAVモデルを使用して標準アプリケーションを拡張するという@BrunoCostaのアイデアは、良い習慣です。しかし、私は標準を変更するためのツールを持っているふりをしており、最終ユーザーと開発者のために使用されるツールを持っています。アプリケーションに埋め込まれた疑似 SQL Server Studio + Visual Studio。

開発したら、CodeProject に投稿します。

于 2012-09-12T08:37:01.770 に答える