안녕하세요. DB를 설계하다가 궁금한점이 있어서 질문드립니다.
'equipment'라는 하나의 테이블이 있습니다.
이 테이블의 값들을 'logintable' 의 Authority2컬럼의 Element로 넣고 싶습니다.
Authority2는 Set Type으로 설정되어 있습니다.
equipment의 Product 값들을 외래키로 지정하여 CASCADE로 하고 싶은데 아래의 테이블 구조를 보면 Product 컬럼은 VARCHAR 로 되어있어 logtintable의 Authority2의 외래키로 지정할 수 없습니다.
SET TYPE 을 쓰는 이유는 사용자가 여러 장비에 대해서 권한을 가질 수 있기 때문입니다.
예를 들면 사용자 1은 장비1과 장비2 에 대해서 권한을 가질 수 있고,
사용자 2는 장비1에 대해서만 권한을 가질 수 있기 때문입니다.
결국 질문의 요지는 equipment 테이블의 product 컬럼의 행들을 logintable 테이블의 SET TYPE인 Authority2의 Element로 넣을 수 있는 방법이 있는지 알고 싶습니다.
CREATE TABLE `logintable` ( `ID` VARCHAR(50) NOT NULL, `Password` VARCHAR(50) NOT NULL, `Authority1` SET('viewer','worker','leader','planning','admin') NULL DEFAULT NULL, `Authority2` SET('Value A','Value B') NULL DEFAULT NULL, PRIMARY KEY (`ID`), INDEX `FK_logintable_equipment` (`Authority2`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB ;
CREATE TABLE `equipment` ( `Product` VARCHAR(50) NOT NULL, PRIMARY KEY (`Product`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB ;