SQL/Testdome

Testdome - Users And Roles

소HS군 2023. 2. 18. 13:40

참고 링크 : https://app.testdome.com/resources/media/75415fde-4215-4514-a530-f515c4580e3e/users_and_roles.txt 

 

C> 주어진 조건 

-- Example case create statement:
CREATE TABLE users (
  id INTEGER NOT NULL PRIMARY KEY,
  userName VARCHAR(50) NOT NULL
);

CREATE TABLE roles (
  id INTEGER NOT NULL PRIMARY KEY,
  role VARCHAR(20) NOT NULL
);

INSERT INTO users(id, userName) VALUES(1, 'Steven Smith');
INSERT INTO users(id, userName) VALUES(2, 'Brian Burns');

INSERT INTO roles(id, role) VALUES(1, 'Project Manager');
INSERT INTO roles(id, role) VALUES(2, 'Solution Architect');

-- Improve the create table statement below:
CREATE TABLE usersRoles (
  userId INTEGER,
  roleId INTEGER
);

 

Q> Users And Roles 테이블 만들기 

유저는 유저 테이블에서 가져온다 

역할은 역할 테이블에서 가져 온다. 

유저는 역할은 하나만 맡을 수 있다 

 

H> 참조 키 만들기 

 

내가 만들 테이블은 usersRoles 테이블이야

           거기에 userid roleid 칼럼을 만들거야

           userid 칼럼은 지명당할 건데, 그 시작 테이블은 users이고, 그 시작 칼럼은 id

           roleid 칼럼은 지명당할 건데, 그 시작 테이블은 roles이고, 그 시작 칼럼은 id

           두 개 모두 unique한 값만 지정할거야

 

A> 답안

create table usersRoles (

  userId integer NOT NULL,

  roleId integer NOT NULL,

  FOREIGN KEY (userId) REFERENCES users (id),

  FOREIGN KEY (roleId) REFERENCES roles (id),

  UNIQUE(userId,roleId)

  );

 

L> 참조키에 대한 리뷰 시간