설명 : 클래스 모델을 만들기 : 오 개 클래스, 일곱 명 테이블의 역할 및 권한 테이블이 테이블 많은 관계 (캐릭터, 권한이 여러 역할에 해당 할 수있는 여러 권한을 가질 수)이며, 사용자 및 역할 테이블이 있습니다 많은 관계 (사용자가 여러 역할, 역할 여러 사용자를 가질 수있다);
첫째, 디자인 테이블 구조
클래스에서 모델을 만들기 클래스 다섯, 일곱 테이블
- 역할 테이블 :
- 사용자 테이블 :
- 권한 테이블 :
- 권한 그룹 테이블 :
- 메뉴 테이블 :
표 역할 및 권한 테이블 (캐릭터가 허가 문자의 복수에 대응할 수있다 특권의 복수를 할 수 있습니다) 많은 관계이다;
사용자 및 역할 테이블 많은 관계 (사용자가 사용자의 복수의 역할을 여러 역할을 가질 수있다)이다;
그래서 두 테이블 사이의 관계를 생성하기 위해 더있을 것이다;
아래의 메뉴 그룹들;
아래의 메뉴 그룹들;
더 많은 권한 아래 메뉴;
################### 권한 섹션 클래스 사용자 정보 (models.Model) : ## 사용자 테이블 이름 = models.CharField (MAX_LENGTH = 16, 빈 = 사실, 널 (null) = TRUE , verbose_name = "사용자 이름") 암호 = models.CharField (MAX_LENGTH = 128, 빈 = 사실, 널 (null) = 사실, verbose_name = "암호") 이메일 = models.CharField에서 (= 32 MAX_LENGTH, verbose_name = "사서함") userPosition = models.ForeignKey (에 = "위치", 빈 = 사실, 널 (null) = 사실, verbose_name = " 게시물", related_name = "userposi") #의 사용자와 게시물 많은 관계 DEF의 __str __ (자동) : 리턴 self.name 메타 - 클래스 : verbose_name_plural = "사용자 테이블" 클래스 위치 (models.Model) : 테이블 ## 위치 명 = models.CharField (MAX_LENGTH = 16, 빈 = 사실, 널 (null) = 사실,verbose_name = "위치 이름") 인증 = models.ManyToManyField (= '인증에 '빈 = 사실, 널 (null) = 사실,verbose_name = "权限", related_name = "posauth") : DEF __str __ (자기) 반환 self.name의 클래스 메타 : verbose_name_plural = "테이블 위치 " 클래스 [인증 (models.Model) : ## 권한 테이블 이름 = models.CharField (MAX_LENGTH = 64, 빈 = 사실 = 사실, verbose_name = 널 (null)" 경로 이름 ") URL = models.CharField (= 64 MAX_LENGTH, 빈 = 사실, 널 (null) = 사실, verbose_name = " 경로") = 'authgroup'에 groupauth = models.ForeignKey (빈 = 사실, 널 (null) = 사실, verbose_name = " 그룹 권한", related_name = "authgroup") # 및 그룹 권한 그것은 많은 관계로 하나, 그룹 더 많은 권한 DEF __str __ (자동) : 리턴 self.name의 클래스 메타 : verbose_name_plural = "허가서"
세 가지 권한 테이블 디자인
테이블 # 역할 (가) 표 sp_role`을 CREATE`( `role_id`이 (가) AUTO_INCREMENT NOT NULL, 부호없는 (. 6) smallint로 VARCHAR (20 인 role_name``) 주석을 NOT NULL '역할 이름', 'ps_ids` VARCHAR (512)에 NOT NULL 기본' '주석' 권한 IDS, 1, 2,5 ', '주석 텍스트 ps_ca` '컨트롤러 - 동작 제어기 - 동작 제어기 - 연산' 'role_desc` 텍스트, 기본 키 (`role_id`) ) = ENGINE InnoDB의 AUTO_INCREMENT를 = 함께 default CHARSET = UTF8 (42)이다; # 권한 테이블 드롭 테이블 '은 IF가 존재 sp_permission`, (가) (테이블 sp_permission``을 만듭니다 . ps_id` SMALLINT`(6) 부호없는 AUTO_INCREMENT NOT NULL, `ps_name` VARCHAR (20)가 COMMENT 인 NOT NULL'특권 이름 ' `ps_pid` SMALLINT (6) 부호없는 NOT NULL 주석 ' 부모 ID', 'ps_c` VARCHAR (32)를 NOT NULL 기본''메모'제어기 ' `ps_a` VARCHAR (32) NOT NULL의 DEFAULT 'COMMENT' 동작 ' 'ps_level` ENUM ( '0', '2'. '1')를 NOT NULL 기본 '0'메모 '인가 레벨', 기본 키 ( ps_id`이`) ) (160) 엔진 = = InnoDB의 AUTO_INCREMENT을 기본 문자 집합 = UTF8 주석은 = '권한 테이블'; # 사용자 테이블 드롭 tABLE`는 IF를 sp_manager` 존재, (가) 테이블 sp_manager`을 CREATE`( `mg_id` 지능 (11)가 NOT NULL을 AUTO_INCREMENT 주석을. '기본 키 ID', 'mg_name` VARCHAR (32)를 NOT NULL'이름 '메모 'mg_pwd` 숯 (64)을 주석 처리 NOT NULL '암호' 등록일`mg_time` INT (10)가 주석에게 NOT NULL 부호없는 '을 ' role_id` TINYINT (11) NOT NULL DEFAULT '0'COMMENT ' 역할 ID', `mg_mobile` VARCHAR (32) 디폴트의 NULL, `mg_email` VARCHAR (64) 초기 NULL, `mg_state` TINYINT (2) DEFAULT '1'설명] 1 :表示启用0表示禁用' PRIMARY KEY (`mg_id`) ) ENGINE = 이노 AUTO_INCREMENT = 510 = DEFAULT CHARSET UTF8 COMMENT ='管理员表'; #权限API는 TABLE`sp_permission_api`을 (CREATE `id` INT (11) NOT NULL AUTO_INCREMENT, `ps_id`의 INT (11) NOT NULL, `ps_api_service` VARCHAR (255) DEFAULT의 NULL, `ps_api_action` VARCHAR (255) DEFAULT의 NULL, `ps_api_path` VARCHAR (255)의 NULL DEFAULT, `ps_api_order` INT (4) 초기 NULL, PRIMARY KEY (`id`) KEY`ps_id` (`ps_id`) ) ENGINE = 이노 AUTO_INCREMENT = 60 = DEFAULT CHARSET UTF8;
사용자 테이블
역할 테이블
권한 테이블
권한 API 테이블
참조 : https://www.codercto.com/a/56577.html