정말이 질문에지고 있는지 모르겠지만 재미있는 작은 데이터베이스 운동 줄 알았는데. 당신이 # 1에서 제안 당신이 "설정"라는 테이블이 있다고 가정 :
+------------+--------------+-----------+---------------+
| setting_id | setting_name | is_system | setting_value |
+------------+--------------+-----------+---------------+
| 3 | foo | 1 | Blue |
| 4 | foo | 0 | Red |
| 5 | bar | 1 | Green |
| 6 | baz | 1 | Yellow |
| 7 | baz | 0 | Orange |
| 8 | quux | 0 | Purple |
+------------+--------------+-----------+---------------+
기본 키가 setting_id
에있을 것이며, 유일 컨 스트레인 트가 열 setting_name
및 is_system
에 적용됩니다 (부울이다).
다음 쿼리가 작업 할 것, 현재 (오버라이드 시스템 설정 가정 사용자 설정) 활성화 된 모든 설정을 찾으려면 :
+--------------+---------------+
| setting_name | setting_value |
+--------------+---------------+
| foo | Red |
| bar | Green |
| baz | Orange |
| quux | Purple |
+--------------+---------------+
: 쿼리를 실행
SELECT setting_name, setting_value
FROM setting s
WHERE is_system = (
SELECT MIN(is_system)
FROM setting si
WHERE s.setting_name = si.setting_name
);
이 결과를 생성
따라서 사용자 설정이 존재하면 가져오고, 그렇지 않으면 시스템 기본값이 대신 사용됩니다.
이런 식으로 MIN()
함수를 사용하는 것은 불리언 값을 조작하는 방법의 일종이지만 충분히 간단합니다.
'시스템 사용자 설정'이란 무엇입니까? 기본 사용자 설정을 의미합니까? –
나는 게임 컬렉션을 쓰고있다. 이 게임 배에는 각 게임에 대한 몇 가지 기본 시스템 설정이 함께 제공됩니다. 사용자는 자신의 설정을 만들어 대신이 설정을 사용할 수 있습니다. – Wouter