์ํ ์๋ฒ์ ์ด์ ์๋ฃ ์ผ๋ถ๋ฅผ ์ฎ๊ฒจ์ ํ๋ฉด์ ํ์ธํ๋ ์ผ์ด ์์๋ค. ์ฎ๊ธด ๋ค ํ๋ฉด์ ๋ณด๋ ์ด๋ฏธ ์ญ์ ๋ ์ํ์ด ๋ชฉ๋ก์ ๋์๋ค.
Table of contents
Open Table of contents
์์ธ โ ํ์๋ก๋ง ์ง์ฐ๊ณ ์์๋ค
์ํ ์ญ์ ๊ฐ ์ด๋ ๊ฒ ๋ผ ์์๋ค.
$this->db->update('product', ['del_yn' => 'Y'], ['product_no' => $no]);
ํ์ ๋จ๊ณ del_yn ๋ง Y ๊ฐ ๋๋ค. ๋์ด๋ฆด ์ ์๊ณ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ๋ ์ ๊นจ์ง๋ค.
ํ๋ณธ์ ๋ฝ๋ ์ฟผ๋ฆฌ๋ ์ด๋ฌ๋ค.
SELECT * FROM product ORDER BY RAND() LIMIT 200;
์กฐ๊ฑด์ด ์์ด์ ์ง์ด ๊ฒ๋ ๋ฝํ๋ค. ํ์๋ก๋ง ์ง์ฐ๋ฉด ์กฐ๊ฑด์ ์ ๊ฑฐ๋ ๋ชจ๋ ์กฐํ์ ๊ทธ๋๋ก ๋์จ๋ค.
์ด์ ํ๋ฉด ์ฝ๋์๋ del_yn ์กฐ๊ฑด์ด ๋ค์ด ์์ด์ ๋ฌธ์ ๊ฐ ์์๋ค. ํ๋ณธ ์ฟผ๋ฆฌ๋ ๊ทธ ์ฝ๋๋ฅผ ๊ฑฐ์น์ง ์๊ณ ์ง์ ์ด ๊ฒ์ด๋ผ ๊ท์น์ด ์ ์ฉ๋์ง ์์๋ค.
์ง์ด ์๋ฃ๋ ์ผ๋ถ๋ฌ ๋ฃ์๋ค
์กฐ๊ฑด์ ๋ฃ์ด ์ง์ด ๊ฒ์ ๋นผ๋ ค๋ค ์๊ฐ์ ๋ฐ๊ฟจ๋ค.
SELECT * FROM product WHERE del_yn = 'N' ORDER BY RAND() LIMIT 200;
์ด๊ฑธ๋ก ๋๋ ๊ฒ ๊ฐ์๋๋ฐ ์ง์ด ์ํ์ด ๋ชฉ๋ก์ ์ ๋์ค๋์ง๋ฅผ ํ์ธํ๋ ค๋ฉด ๊ทธ ์๋ฃ๊ฐ ํ๋ณธ์ ์์ด์ผ ํ๋ค. ์ ๋ถ ๋นผ๋ฉด ๊ทธ ํ์ธ ์์ฒด๋ฅผ ๋ชป ํ๋ค.
์ํ ์๋ฃ๋ ์ด์์ ์ถ์ํ ๊ฒ์ด ์๋๋ผ ํ์ธํ ๊ฒฝ์ฐ๋ฅผ ๋ด์ ๊ฒ์ด์ด์ผ ํ๋ค. ์ด ๊ตฌ๋ถ์ด ํ๋ณธ ๋ฝ๋ ๋ฐฉ์์ ๋ฐ๊ฟจ๋ค.
์ํ๋ณ๋ก ๋๋ ๋ฝ์๋ค
ORDER BY RAND() ๋ก 200๊ฐ๋ฅผ ๋ฝ์ผ๋ ๋๋ถ๋ถ์ด ํ๋งค ์ค ์ํ์ด์๋ค. ํ์ ์ด๋ ํ๋งค ์ค์ง ์ํ์ ํ๋ฉด์ ํ์ธ์ด ์ ๋๋ค.
(SELECT * FROM product WHERE del_yn='N' AND status='sale' ORDER BY RAND() LIMIT 50)
UNION ALL
(SELECT * FROM product WHERE del_yn='N' AND status='soldout' ORDER BY RAND() LIMIT 50)
UNION ALL
(SELECT * FROM product WHERE del_yn='N' AND status='stop' ORDER BY RAND() LIMIT 50)
UNION ALL
(SELECT * FROM product WHERE del_yn='Y' ORDER BY RAND() LIMIT 50)
status ๋ณ๋ก ๋๋๊ณ ๋ง์ง๋ง์ ์ง์ด ๊ฒ๋ ์ผ๋ถ๋ฌ ๋ฃ์๋ค.
์ํ๋ง ์ฎ๊ธฐ๋ ํ๋ฉด์ด ๊นจ์ก๋ค. ์ด๋ฏธ์ง์ ์ต์ ๊ณผ ๋ถ๋ฅ๊ฐ ์์๋ค.
SELECT * FROM product_image WHERE product_no IN (SELECT product_no FROM tmp_sample);
SELECT * FROM product_option WHERE product_no IN (SELECT product_no FROM tmp_sample);
๋ฝ์ ์ํ ๋ฒํธ๋ฅผ tmp_sample ์ ๋ฃ๊ณ ๊ทธ๊ฒ์ ๊ธฐ์ค์ผ๋ก ๋ธ๋ฆฐ ์๋ฃ๋ฅผ ๊ฐ์ ธ์๋ค. ๊ด๊ณ๋ฅผ ๋ฐ๋ผ๊ฐ๋ ์์๋ ์ ์ด ๋๋ค.
product (๊ธฐ์ค)
โ product_image
โ product_option
โ product_category โ category
โ stock
์ ์ ์ผ๋ฉด ๋งค๋ฒ ๋ฌด์์ ๊ฐ์ ธ์์ผ ํ๋์ง ๋ค์ ์ฐพ๋๋ค.
๊ฐ์ธ์ ๋ณด์ ๋๊ฐ๋ ๊ฒฝ๋ก
์ฃผ๋ฌธ ์๋ฃ๋ฅผ ์ฎ๊ธธ ๋ ํ์ ์ ๋ณด๊ฐ ๊ทธ๋๋ก ๋ฐ๋ผ์๋ค. ์ํ ์๋ฒ๋ ์ ๊ทผ ๊ถํ์ด ๋์จํด์ ์ค์ ์ด๋ฆ๊ณผ ์ฐ๋ฝ์ฒ๊ฐ ์์ผ๋ฉด ์ ๋๋ค.
UPDATE member SET
name = CONCAT('ํ์', member_no),
phone = CONCAT('010', LPAD(member_no, 8, '0')),
email = CONCAT('test', member_no, '@example.com'),
addr = '์์ธ์ ํ
์คํธ๊ตฌ ํ
์คํธ๋'
WHERE 1;
์ฎ๊ธด ์งํ์ ๋ฐ๋์ ๋๋ฆฌ๊ฒ ์ ์ฐจ์ ๋ฃ์๋ค. ๋์ค์ ํ๋ฉด ๊ทธ ์ฌ์ด์ ๋๊ฐ ๋ณด๊ฒ ๋๋ค.
ํ ๋ฒ์ ์ด ๋จ๊ณ๋ฅผ ๋นผ๋จน์๋ค๊ฐ ์ค์ ๋ฒํธ๋ก ์ํ ๋ฌธ์๊ฐ ๋๊ฐ ๋ปํ๋ค. ๋ฐ์ก ์ค์ ์ด ์ํ ๋ชจ๋๊ฐ ์๋์๋ค.
if (ENVIRONMENT !== 'production') {
log_message('info', "[์ํ] ๋ฌธ์ ๋ฐ์ก ์๋ต: {$phone}");
return true;
}
ENVIRONMENT ๋ก ๊ฐ๋ผ ๋ฌธ์์ ๋ฉ์ผ๊ณผ ๊ฒฐ์ ์ฐ๋์ ๋ง์๋ค. ๊ฐ๋ฆฌ๋ ๊ฒ๊ณผ ๋ง๋ ๊ฒ ๋ ๊ฒน์ด๋ฉด ํ๋๊ฐ ๋น ์ ธ๋ ๋ฐ์ผ๋ก ์ ๋๊ฐ๋ค.
์ ๋ฆฌ
del_yn์ผ๋ก๋ง ์ง์ด ํ์ ์กฐ๊ฑด์ ์ ๊ฑธ๋ฉด ์กฐํ์ ๊ทธ๋๋ก ๋์จ๋ค- ํ๋ฉด์ ๊ฑฐ์น์ง ์๋ ๊ฒฝ๋ก์๋ ๊ทธ ๊ท์น์ด ์ ์ฉ๋์ง ์๋๋ค
- ํ๋ณธ์ ์ง์ด ์๋ฃ๋ฅผ ์ผ๋ถ๋ฌ ํฌํจํ๋ค. ์ ๋์ค๋์ง ํ์ธํ๋ ค๋ฉด ํ์ํ๋ค
- ์ํ ์๋ฃ๋ ์ด์์ ์ถ์๊ฐ ์๋๋ผ ํ์ธํ ๊ฒฝ์ฐ๋ฅผ ๋ด์ ๊ฒ์ด๋ค
ORDER BY RAND()๋ก ๋ฝ์ผ๋ฉด ํํ ์ํ๋ง ๋์จ๋ค. ์ํ๋ณ๋ก ๋๋ ๋ฝ๋๋ค- ๊ด๊ณ๋ ํ ์ด๋ธ์ ๊ฐ์ด ๊ฐ์ ธ์ค๊ณ ๋ฐ๋ผ๊ฐ๋ ์์๋ฅผ ์ ์ด ๋๋ค
- ๊ฐ์ธ์ ๋ณด๋ ์ฎ๊ธด ์งํ์ ๊ฐ๋ฆฐ๋ค. ์ด ๋จ๊ณ๋ฅผ ์ ์ฐจ์ ๋ฃ๋๋ค
- ์ํ ํ๊ฒฝ์์ ์ธ๋ถ๋ก ๋๊ฐ๋ ๊ฒ ์์ฒด๋ฅผ ๋ง๋๋ค. ๋ ๊ฒน์ด๋ฉด ํ๋๊ฐ ๋น ์ ธ๋ ์ ๋๊ฐ๋ค