SQL は、データベースにアクセスするための言語です。多くの場合、大規模なアプリケーションのデータ ストアへの API であると混同されます。実際、データ ストアとアプリの間に実際の API を設計する必要があります。
はいくつかのことを意味します。
テーブルに格納されたデータにアクセスするには、テーブルに直接アクセスするのではなく、データベース内のビューを経由する必要があります。
データ変更ステップでは、ストアド プロシージャでinsert
/ update
/をラップします。delete
これには、ストアド プロシージャで制約とトリガーを処理し、何が起こっているかをより適切に記録できるという副次的な利点があります。
セキュリティのために、セキュリティアーキテクチャの一部としてデータベースセキュリティを含めます。すべてのユーザーにフルアクセスを提供することは、最良のアプローチではないかもしれません。
残念ながら、データベースを直接使用する単純なアプリケーションを作成するのは簡単です。それは、Java、Ruby、VBA などのいずれでも可能です。これがより大きなアプリに成長すると、メンテナンスの問題が発生します。
これを修正するための漸進的なアプローチをお勧めします。コードを調べて、厄介な select ステートメントがあるビューを作成します。おそらく、選択よりもはるかに少ないビューが必要であることに気付くでしょう (ビューは再利用できます - 良いことです)。
コードが変更されている場所を見つけて、これらをストアド プロシージャに変更します。私はエラー チェックのために常にストアド プロシージャからステータスを返し、ログ情報を何かと呼ばれるテーブルに入れsplog
ます_spcalls
。
アプリのさまざまなユーザーの権限を制限したい場合は、これに興味があるかもしれません。
生の SQL ステートメントをコードに残すことは問題です。列の名前を変更するまで待ってください。これによりコードが壊れるすべての場所を見つける必要があります。