내가 가지고있는 것 :사용자의 웹 사이트 권한을 저장하고 mySQL에서 쿼리하는 방법은 무엇입니까?
내 테이블에 사용자의 권한 문자열을 저장하는 privileges
이라는 열이 있습니다. (-1 = owner, 0 = admin, 1 = moderate comment 등) 그래서 나는 sql : 1,2,3
과 같은 문자열을 가질 것입니다.
는 문제 : 내가 관리자 및 운영자 모든 사용자를 선택하고 싶었
, 그것은 LIKE
조건에 조금 까다로운된다. 지금 당장, 관리자가 필요하면 모든 사용자가 1을 검색합니다 (PHP를 사용하면 비효율적입니다).
나는 플러그인 개발자가 쉽게 '꽂아'쉽게 쿼리 할 수있는 솔루션을 찾고 있습니다. 내 솔루션은 작동하지만 사용자가 수백 명으로 늘어날 경우 특정 권한을 찾기 위해 반복적으로 모든 작업을 반복적으로 수행 할 수 있습니다.
누구에게 더 좋은 방법이나 생각이 있습니까?
관계형 데이터베이스 [사용자] - 투 - [역할]을 사용해야합니다 ... PHP로 루핑하는 것이 비효율적이라고 말하는가? 당신이 원하는 것을 얻기 위해서 당신은 LIKE 질의의 시작에 와일드 카드를 사용해야합니다 ... 그것을하는 최악의 방법. ACL을보십시오. – Alex
@Alex - 필자는 확실히 mySQL의 초심자이지만, 'LIKE'를 사용하여 느린 쿼리를하는 것보다 데이터를주고받는 것이 덜 효율적이라고 가정했습니다. – Jason
당신은 현재의 테이블 구조를 기반으로 뷰를 생성 할 수 있습니다.이 뷰에서는 모든 사용자 유형을 분리하고 여러 쿼리를 'UNION'과 결합 할 수 있습니다. 그런 다음 특정 유형 (예 :'WHERE type = 1')에 대한보기를 조회하십시오. 쿼리가 느리지 만 데이터 전송량이 가장 적습니다. – Alex