Pertimbangkan senario berikut: anda mempunyai gabungan yang kompleks dengan pelbagai medan , setiap satunya boleh digunakan dalam pelbagai konteks. Untuk mengoptimumkan prestasi, anda mungkin ingin mencipta paparan yang mengandungi semua medan yang berkaitan menggunakan operator kad bebas (*):
CREATE VIEW aview AS SELECT * FROM table1 INNER JOIN table2 ...
Walau bagaimanapun, pendekatan ini boleh membawa kepada masalah jika dua medan berkongsi nama yang sama merentas jadual bercantum. Ini boleh menyebabkan kekaburan dan hasil yang tidak dijangka apabila menanyakan pandangan.
Walaupun ini adalah salah satu sebab mengapa penggunaan '*' dalam definisi paparan tidak digalakkan, terdapat kebimbangan tambahan:
Adalah penting untuk ambil perhatian bahawa mungkin terdapat senario di mana penggunaan '*' dilihat definisi sengaja dikehendaki. Sebagai contoh, jika anda mahu paparan menyesuaikan secara automatik kepada perubahan dalam skema asas, definisi kad bebas mungkin sesuai. Walau bagaimanapun, adalah penting untuk berhati-hati mempertimbangkan potensi kelemahan dan melaksanakan perlindungan yang sesuai untuk mengelakkan akibat yang tidak diingini.
Walaupun menggunakan '*' dalam definisi paparan kadangkala kelihatan mudah, secara amnya dinasihatkan untuk secara eksplisit nyatakan medan yang diperlukan. Pendekatan ini memberikan lebih kejelasan, mengelakkan kekaburan dan meningkatkan kebolehselenggaraan dan kebolehpercayaan paparan pangkalan data anda.
Atas ialah kandungan terperinci Mengapakah Menggunakan '*' dalam Definisi Paparan Dianggap sebagai Perangkap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!