| 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);