id login_id password role username floor room
1 1 pass1 USER 홍길동 NULL NULL
2 2 pass2 USER 김철수 NULL NULL
3 3 pass3 USER 이영희 NULL NULL
4 4 adminpass1 ADMIN 관리자A 1 A
5 5 adminpass2 ADMIN 관리자B 1 B
6 6 adminpass3 ADMIN 관리자C 2 A
7 7 adminpass4 ADMIN 관리자D 2 B
8 8 adminpass5 ADMIN 관리자E 3 NULL
9 9 adminpass6 ADMIN 관리자F 4 NULL
10 10 adminpass7 ADMIN 관리자G 5 A
11 11 adminpass8 ADMIN 관리자H 5 B
12 12 adminpass9 ADMIN 관리자I 6 NULL

체크인 더미데이터 명령어

#삭제 명령어
TRUNCATE TABLE checkins;

SET @curr_floor := NULL;
SET @curr_room  := NULL;
SET @rn         := 0;

#전체 더미데이터 생성
INSERT INTO checkins (seat_id, user_id, status, checkin_time, away_started_at)
SELECT
    t.seat_id,

    -- ✅ 더미 유저 id (4,5,6만 사용 → 1,2,3은 절대 안 씀)
    CASE
        WHEN t.rn IN (1,4,7) THEN 4
        WHEN t.rn IN (2,5)   THEN 5
        ELSE 6
    END AS user_id,

    -- 앞 4개는 IN_USE, 뒤 3개는 AWAY
    CASE
        WHEN t.rn IN (1,2,3,4) THEN 'IN_USE'
        ELSE 'AWAY'
    END AS status,

    -- 체크인 시간 다양하게
    CASE t.rn
        WHEN 1 THEN DATE_SUB(NOW(), INTERVAL 10 MINUTE)
        WHEN 2 THEN DATE_SUB(NOW(), INTERVAL 32 MINUTE)
        WHEN 3 THEN DATE_SUB(NOW(), INTERVAL 72 MINUTE)
        WHEN 4 THEN DATE_SUB(NOW(), INTERVAL 130 MINUTE)
        WHEN 5 THEN DATE_SUB(NOW(), INTERVAL 50 MINUTE)
        WHEN 6 THEN DATE_SUB(NOW(), INTERVAL 110 MINUTE)
        WHEN 7 THEN DATE_SUB(NOW(), INTERVAL 190 MINUTE)
    END AS checkin_time,

    -- AWAY 시작 시간 (AWAY 인 것만)
    CASE t.rn
        WHEN 5 THEN DATE_SUB(NOW(), INTERVAL 5 MINUTE)
        WHEN 6 THEN DATE_SUB(NOW(), INTERVAL 35 MINUTE)
        WHEN 7 THEN DATE_SUB(NOW(), INTERVAL 70 MINUTE)
        ELSE NULL
    END AS away_started_at

FROM (
    SELECT
        s.id AS seat_id,
        s.floor,
        s.room,
        @rn := IF(
            @curr_floor = s.floor
            AND IFNULL(@curr_room,'#') = IFNULL(s.room,'#'),
            @rn + 1,
            1
        ) AS rn,
        @curr_floor := s.floor,
        @curr_room  := s.room
    FROM seats s
    ORDER BY s.floor, s.room, RAND()   -- 층/구역별로 좌석을 랜덤 섞기
) t
WHERE t.rn <= 7;                       -- 각 층/구역당 7개만 사용

좌석 더미 데이터

INSERT INTO seats (floor, room, seat_number) VALUES
-- 6층
(6, NULL, 1),(6, NULL, 2),(6, NULL, 3),(6, NULL, 4),(6, NULL, 5),
(6, NULL, 6),(6, NULL, 7),(6, NULL, 8),(6, NULL, 9),(6, NULL, 10),
(6, NULL, 11),(6, NULL, 12),(6, NULL, 13),(6, NULL, 14),(6, NULL, 15),
(6, NULL, 16),(6, NULL, 17),(6, NULL, 18),(6, NULL, 19),(6, NULL, 20),

-- 5층 A
(5, 'A', 1),(5, 'A', 2),(5, 'A', 3),(5, 'A', 4),(5, 'A', 5),
(5, 'A', 6),(5, 'A', 7),(5, 'A', 8),(5, 'A', 9),(5, 'A', 10),
(5, 'A', 11),(5, 'A', 12),(5, 'A', 13),(5, 'A', 14),(5, 'A', 15),
(5, 'A', 16),(5, 'A', 17),(5, 'A', 18),(5, 'A', 19),(5, 'A', 20),

-- 5층 B
(5, 'B', 1),(5, 'B', 2),(5, 'B', 3),(5, 'B', 4),(5, 'B', 5),
(5, 'B', 6),(5, 'B', 7),(5, 'B', 8),(5, 'B', 9),(5, 'B', 10),
(5, 'B', 11),(5, 'B', 12),(5, 'B', 13),(5, 'B', 14),(5, 'B', 15),
(5, 'B', 16),(5, 'B', 17),(5, 'B', 18),(5, 'B', 19),(5, 'B', 20),

-- 4층
(4, NULL, 1),(4, NULL, 2),(4, NULL, 3),(4, NULL, 4),(4, NULL, 5),
(4, NULL, 6),(4, NULL, 7),(4, NULL, 8),(4, NULL, 9),(4, NULL, 10),
(4, NULL, 11),(4, NULL, 12),(4, NULL, 13),(4, NULL, 14),(4, NULL, 15),
(4, NULL, 16),(4, NULL, 17),(4, NULL, 18),(4, NULL, 19),(4, NULL, 20),

-- 3층
(3, NULL, 1),(3, NULL, 2),(3, NULL, 3),(3, NULL, 4),(3, NULL, 5),
(3, NULL, 6),(3, NULL, 7),(3, NULL, 8),(3, NULL, 9),(3, NULL, 10),
(3, NULL, 11),(3, NULL, 12),(3, NULL, 13),(3, NULL, 14),(3, NULL, 15),
(3, NULL, 16),(3, NULL, 17),(3, NULL, 18),(3, NULL, 19),(3, NULL, 20),

-- 2층 A
(2, 'A', 1),(2, 'A', 2),(2, 'A', 3),(2, 'A', 4),(2, 'A', 5),
(2, 'A', 6),(2, 'A', 7),(2, 'A', 8),(2, 'A', 9),(2, 'A', 10),
(2, 'A', 11),(2, 'A', 12),(2, 'A', 13),(2, 'A', 14),(2, 'A', 15),
(2, 'A', 16),(2, 'A', 17),(2, 'A', 18),(2, 'A', 19),(2, 'A', 20),

-- 2층 B
(2, 'B', 1),(2, 'B', 2),(2, 'B', 3),(2, 'B', 4),(2, 'B', 5),
(2, 'B', 6),(2, 'B', 7),(2, 'B', 8),(2, 'B', 9),(2, 'B', 10),
(2, 'B', 11),(2, 'B', 12),(2, 'B', 13),(2, 'B', 14),(2, 'B', 15),
(2, 'B', 16),(2, 'B', 17),(2, 'B', 18),(2, 'B', 19),(2, 'B', 20),

-- 1층 A
(1, 'A', 1),(1, 'A', 2),(1, 'A', 3),(1, 'A', 4),(1, 'A', 5),
(1, 'A', 6),(1, 'A', 7),(1, 'A', 8),(1, 'A', 9),(1, 'A', 10),
(1, 'A', 11),(1, 'A', 12),(1, 'A', 13),(1, 'A', 14),(1, 'A', 15),
(1, 'A', 16),(1, 'A', 17),(1, 'A', 18),(1, 'A', 19),(1, 'A', 20),

-- 1층 B
(1, 'B', 1),(1, 'B', 2),(1, 'B', 3),(1, 'B', 4),(1, 'B', 5),
(1, 'B', 6),(1, 'B', 7),(1, 'B', 8),(1, 'B', 9),(1, 'B', 10),
(1, 'B', 11),(1, 'B', 12),(1, 'B', 13),(1, 'B', 14),(1, 'B', 15),
(1, 'B', 16),(1, 'B', 17),(1, 'B', 18),(1, 'B', 19),(1, 'B', 20);