これらのステートメントのそれぞれの3行目はまったく同じである。DRY - 格納された関数への繰り返しコードを抽出する方法は?
文1
SELECT * FROM `uploads`
WHERE `uid` = :uid
AND `deleted` <> 1 AND `archived` <> 1
文2
SELECT * FROM `uploads`
WHERE `folder_id` = :folder_id
AND `deleted` <> 1 AND `archived` <> 1
第三のラインは、同様に多くの他の文で使用されています30の異なるステートメントを言うことができます。この例では、「アップロードされたテーブルからすべてのファイルを取得しましたが、削除またはアーカイブされていません」という意味です。将来的に3つ目の修飾子を追加する必要がある場合(たとえばAND uploadsuccess = 1
)、30種類の異なるSQL文を編集する必要があります。 DRYしないでください。ここではDRYの原則をSQL(ここではMySQL、それが重要な要素ならば)を使ってどのように使うことができますか?
ありがとうございました。
はい、私もビューを行います。 –