BEFORE
๋๊ฐ ์์ ๊ฐ์ raw data ๊ฐ ์๋ค.
๋๋ front-back ์๋จ ๊ฐ๊ณต์ ํตํด์ ํธ๋ฆฌ ํํ์ ๋ฐ์ดํฐ์ ๋๋ฌํ์ฌ์ผ ํ๋ค.
์ด๋ฐ ๋ชจ์์ด ๋์ด์ผ ํ๋ค.
AFTER
ํ๋ก ํธ ๋จ์์ mui treeview ๋ฅผ ์ธ๊ฑฐ๊ธด ํ์ง๋ง.. ์ฐ์ ์ด๋ป๊ฒ ๋ ์ง ๋ชฐ๋ผ
level ๊ณผ display_number, PID(Parents ID)๋ฅผ ์ฑ๋ฒํ๋ ํ์์ผ๋ก ๋ฐ๊ฟ๋์๋ค.
json ์ผ๋ก parent-child ํ์์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ฒ ์คํธ์ด๊ฒ ์ง๋ง,
mssql ์ ์ด๋ค ์์ผ๋ก ์ฃผ๋ฌผ๋ฌ์ผ ๊ทธ๋ ๊ฒ ์์ฑ๋๋ ์ง ์ฌ์ค ์ ๋ชจ๋ฅด๊ฒ ๋ค..
์ฐพ์๋ด๋ ์จํต ํ๋์ฝ๋ฉ ํ๋ ๊ฒ ๋ฟ์ด๊ณ , (์ฝ 3000๊ฑด์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ํ๋์ฝ๋ฉ?)
์ฌ๊ท๋ฅผ ์ฐ๋๋ผ๋ ID ๊ฐ ์ฑ๋ฒ๋์ด ์๋ ์ํ์์ parentID ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
๊ณ ๋ก ๊ฐ๊ณต์ ํ๋ฒ ํด๋์ผ, ํ๋ก ํธ์์ ์ฃผ๋ฌด๋ฅด๋, ๋ฐฑ์์ ์ฃผ๋ฌด๋ฅด๋ ํ๋ค๋ ๋ป์ด๋ค.
๊ทธ๋์ 1์ฐจ ๊ฐ๊ณต์ ํ๋ค.
HOW TO ?
-- ์์ ํ
์ด๋ธ ์์ฑ
CREATE TABLE #TEMP_1 ( Company NVARCHAR(10), Plant NVARCHAR(10), Vsm NVARCHAR(10) )
CREATE TABLE #TEMP ( VALUE NVARCHAR(10), LEVEL INT, DISPLAY_NO INT, PID INT )
-- ๊ธฐ๋ณธ์ด ๋์ด์ค ์์ ํ
์ด๋ธ์ ๋ฐ์ดํฐ ๋ชจ์ ๋ฐ๊ฟ์ ๋ฐ์ด๋ฃ๊ธฐ
INSERT INTO #TEMP_1 SELECT Company, '-', '-' FROM ์๋ณธํ
์ด๋ธ๋ช
GROUP BY Company
INSERT INTO #TEMP_1 SELECT Company, Plant, '-' FROM ์๋ณธํ
์ด๋ธ๋ช
GROUP BY Company, Plant
INSERT INTO #TEMP_1 SELECT Company, Plant, Vsm FROM ์๋ณธํ
์ด๋ธ๋ช
GROUP BY Company, Plant, Vsm
-- ํ๋ฒ ์ ๋ฆฌ๋ #TEMP_1 ์ ๊ธฐ๋ฐ์ผ๋ก level, display_no, pid ๊ฐ ์์์ฃผ๊ธฐ
INSERT INTO #TEMP ( VALUE, LEVEL, DISPLAY_NO, PID )
SELECT Company, 1, (RANK() OVER (ORDER BY Company)) * 1000000, NULL
FROM #TEMP_1
WHERE Plant = '-'
INSERT INTO #TEMP ( VALUE, LEVEL, DISPLAY_NO, PID )
SELECT A1.Plant, 2, A2.DISPLAY_NO + (RANK() OVER (PARTITION BY A1.Company ORDER BY A1.Plant)) * 1000 , A2.DISPLAY_NO
FROM #TEMP_1 A1
LEFT JOIN #TEMP A2 ON A1.Company = A2.VALUE
WHERE A1.Plant <> '-' AND A1.Vsm = '-' AND A2.LEVEL = 1
INSERT INTO #TEMP ( VALUE, LEVEL, DISPLAY_NO, PID )
SELECT A1.Vsm, 3, A2.DISPLAY_NO + (RANK() OVER (PARTITION BY A1.Company, A1.Plant ORDER BY A1.Vsm)) , A2.DISPLAY_NO
FROM #TEMP_1 A1
LEFT JOIN #TEMP A2 ON A1.Plant = A2.VALUE
WHERE A1.Vsm <> '-' AND A2.LEVEL = 2
๋ฐฑ์ ์ด์ ๋๋ก ๊ฐ๊ณตํด๋๊ณ , ํ๋ก ํธ ๋จ์์
1. level ๊ฐ ์ฌ์ฉํ์ฌ์ ์ ์ฉํ ์ ์๋๋ก treeview์ ์ ๊ณต api ๋ฅผ ์ฐพ๋์ง
2. array ์๋ค๊ฐ PID + DISPLAY_NO ์ฌ์ฉํด์ parent-child ๋ชจ์ ๋ง๋ค์ด์ฃผ๊ณ , map ๋๋ ค์ treeview ์ ๋ฐ๋ผ์ฃผ๋์ง
ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์ฐ์ ์ด ๋ฐฉ๋ฒ ์ด์ผ๊ธฐ ํ๋ฒ ํด๋ณด๊ณ ... ๊ณ์ ์งํํ๊ฒ ๋๋ฉด ํ๋ก ํธ ๋จ ๊ฐ๊ณต๋ ํฌ์คํ ํด๋ณด๋๋ก ํ๊ฒ ๋ค.