別の質問が非常に広く尋ねられ一般的なようです。例えば、私はデータベースにいくつかのアカウントテーブルを持っています、それはアカウントテーブルと言うことができます。クライアント(デスクトップのwinformsアプリ)には、新しいアカウントを追加するための適切な機能があります。 UIの中には、テキストボックスとボタンがあります。DBとクライアント間のビジネスロジックの広がり
もう1つの要件は、アカウントの一意性です。だから私は2つの同じアカウントを追加することはできません。私の質問は、私はクライアント上でこのアカウントの存在を確認する(いくつかのクエリと結果を見て)か、新しいアカウントを追加してそこにアカウントの存在をチェックするためのストアドプロシージャを作成する必要があります。それは私のために、ちょうど格納されたprocを作る方が良いです、そこに私は必要なチェックをして、すべてのチェックの後に新しいアカウントを追加することができます。しかし、そこには長所と短所があります。例えば、procが生成すべきメッセージの言語を管理することは非常に困難です。私はすでに任意のデータベースの制約を持って
POSTのEDIT
、などの問題は、ユーザが存在アカウントを追加されているが、状況を処理する方法です。
POSTのEDIT 2
アカウントの一意性は、ビジネス・ロジックの単なる小さな一例として公開されます。私の質問は、そのアカウントドメイン上で複雑なビジネスロジックを処理することです。
どうすればこの誤解を管理できますか?
私の質問は基本的であり、実証済みの解決策であると信じています。私のツールはC#、.NET Framework 2.0です。事前に感謝、みんな!
データベースの制約を使用して、アカウントの一意性を保証します。クライアントまたはストアドプロシージャのどちらでもありません。 –
最初はデータベースの制約を使用していることがわかります。問題は、そこに存在するプロセス状況が存在アカウントを追加する方法です。 – kseen
さて、いつでも 'System.Data.SqlClient.SqlException'をキャッチすることができます。ユーザーがデータを送信する前に確認したい場合(ユーザー名が使用されている場合は新しい電子メールを作成するとすぐに通知されます)、小さな関数や保存されたprocを作成して、ユーザーが離れるとすぐに確認する必要がありますテキストボックス –