[解決済み】最も一般的なSQLアンチパターンは何ですか?[クローズド]。
2022-04-03 18:32:51
質問
リレーショナル・データベースを扱う私たちは皆、SQLが他とは違うことを学んできました(あるいは学びつつあります)。目的の結果を引き出し、それを効率的に実行するためには、見慣れないパラダイムを学習し、最も馴染みのあるプログラミングパターンのいくつかがここでは機能しないことを知るという、退屈なプロセスが一部含まれます。あなたが見た(あるいはあなた自身が犯した)一般的なアンチパターンは何ですか?
解決方法は?
私は、ほとんどのプログラマーがデータアクセス層にUIロジックを混在させる傾向にあることに、一貫して失望しています。
SELECT
FirstName + ' ' + LastName as "Full Name",
case UserRole
when 2 then "Admin"
when 1 then "Moderator"
else "User"
end as "User's Role",
case SignedIn
when 0 then "Logged in"
else "Logged out"
end as "User signed in?",
Convert(varchar(100), LastSignOn, 101) as "Last Sign On",
DateDiff('d', LastSignOn, getDate()) as "Days since last sign on",
AddrLine1 + ' ' + AddrLine2 + ' ' + AddrLine3 + ' ' +
City + ', ' + State + ' ' + Zip as "Address",
'XXX-XX-' + Substring(
Convert(varchar(9), SSN), 6, 4) as "Social Security #"
FROM Users
通常、プログラマはデータセットを直接グリッドにバインドするつもりで、クライアントでフォーマットするよりもサーバーサイドでSQL Serverをフォーマットする方が便利だから、これを行うのです。
上記のようなクエリは、データレイヤーとUIレイヤーを密に結合しているため、非常にもろいです。その上、このスタイルのプログラミングは、ストアドプロシージャの再利用を徹底的に妨げます。
関連
-
[解決済み】Postgresのエラー。式として使用されるサブクエリによって返される複数の行
-
[解決済み] SQL Server - INNER JOIN WITH DISTINCT
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] UNIONとUNION ALLの違いは何ですか?
-
[解決済み] フラットテーブルをツリーにパースする最も効率的/エレガントな方法は何ですか?
-
[解決済み] SQL Serverで結果をページ分割する最も良い方法は何ですか?
-
[解決済み] SQLのインデックスとは何ですか?
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み】アンチパターンとは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み】SQL Server: 無効なカラム名
-
[解決済み] ORA-00920: 無効な関係演算子
-
[解決済み] Varchar は Sum 演算子では無効です。
-
[解決済み] アクセスクエリーエラー(from句のシンタックスエラー)
-
[解決済み] SQLでchar値をmoneyに変換できない
-
[解決済み] MySQLのON句の不明なカラム
-
[解決済み] VBA - ADODB.CommandTextの実行
-
[解決済み] SQL Server - 挿入された行のIDを取得するための最良の方法は?
-
[解決済み] アプリケーション開発者が陥りやすいデータベース開発の失敗例【終了しました