저는 CREATE VIEW
의 유용성을 아주 좋아했습니다. 예를 들어 COALESCE(post.publish, profile.publish)
을 통해 전역 및 특정 값을 가질 수 있으므로 publish
이 NULL
인 경우 전역 값이 대신 가져옵니다.보기에서 선택 *을 사용하는 것이 안전합니까?
성능과 논리적 관점에서 약간 궁금한 부분은 기존 테이블과 함께 사용해야합니다.
CREATE VIEW post_info AS
SELECT post.*, COALESCE(post.publish, profile.publish) AS publish
FROM post
INNER JOIN profile
ON post.profile_id = profile.id
만 post_info
SELECT
의 경우, 또는 사용 :
CREATE VIEW post_info AS
SELECT post.id, COALESCE(post.publish, profile.publish) AS publish
FROM post
INNER JOIN profile
ON post.profile_id = profile.id
그리고 JOIN
post_info
을
CREATE TABLE post (
id INT,
profile_id INT,
name VARCHAR,
publish ENUM('TRUE', 'FALSE') NULL
)
가 CREATE VIEW
같이 실행하는 데 가장 좋은 것입니다 : 나는 테이블이 있다고 가정하자 post
에 SELECT
추가 값이 필요한 경우?
이 문제에 대한 귀하의 통찰력과 생각을 공유하십시오. 각 솔루션의 장점과 단점에 대한 의견을 듣고 싶습니다. 내가 언급하지 않은 사람이 될 수도 있습니다.
'SELECT *'는 결코 좋지 않습니다. – GolezTrol
나는 보통'*'을 피하고 싶다. 그러나 나는 더 많은 컬럼을 가지고 테이블을 완성 할 특별한 경우라고 생각한다. –
'ENUM ('TRUE', 'FALSE') NULL '을 (를) 게시 하시겠습니까?! Eeek! 왜 'BOOLEAN NULL을 게시하지 않습니까?' – RandomSeed