1

Natural Join を使用すると、両方のテーブルの列名が同じ場合にテーブルが結合されます。しかし、PHP で記述し、DBA が両方のテーブルにいくつかのフィールドを追加すると、Natural Join が壊れる可能性があります。

Insert についても同じことが言えます。

insert into gifts values (NULL, "chocolate", "choco.jpg", now());

そうすると、DBA がいくつかのフィールドをテーブルに追加するときに (列 2 または 3 など)、コードが破損するだけでなく、テーブルが汚染されます。そのため、SQL ステートメントがプログラミング言語内で記述され、大きなプロジェクトのファイルに保存される場合は、常に列名を綴るのが最善です。

4

3 に答える 3

2

自然な結合は、どこに記述しても良い考えではありません。それらは、より明示的なコードが明らかにする意味を隠し、列名が変更された場合に微妙なバグを引き起こす可能性があります。

于 2010-04-25T11:11:40.477 に答える
1

はい、フィールドを明示的に記述することが常にベスト プラクティスです。そうしないと、スキーマを変更したときにコードが壊れます。

于 2010-04-25T11:10:34.627 に答える
1

はい、関心のある列に明示的に名前を付けることは常に良い考えです。ご指摘のとおり、これにより、誰かがテーブルに列を追加した場合にクエリが壊れるのを防ぎます。

SELECT で列を記述する代わりに列をリストすることを好む場合も、同じことが当てはまりますSELECT *この関連する質問を参照してください。

于 2010-04-25T11:10:49.743 に答える