내일배움캠프 스파르타 코딩클럽
어제에 이어서 가보도록 하겠다.
과제 1
-- **출판사(`Publisher`) 테이블**
-- 1. `publisherId` 컬럼을 가집니다. 기본 키 조건을 설정합니다.
-- 2. 출판사 명(`publisherName`) 컬럼을 가집니다. 문자열 타입을 가집니다.
-- 3. 출판사 주소(`publisherAddress`) 컬럼을 가집니다. 문자열 타입을 가집니다.
-- **책(`Books`) 테이블**
-- 1. `bookId` 컬럼을 가집니다. 기본 키 조건을 설정합니다.
-- 2. 책 명(`bookName`) 컬럼을 가집니다. 문자열 타입을 가집니다.
-- **이외 요구사항**
-- - **출판사**는 **여러개**의 **책**을 가질 수 있습니다.
-- - **출판사 명, 출판사 주소, 책 명**은 NULL 값을 가질 수 없습니다.
CREATE TABLE Publisher
(
publisherId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
publisherName varchar(255) NOT NULL,
publisherAddress varchar(255) NOT NULL
);
CREATE TABLE Books
(
bookId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
PublisherId int(11) NOT NULL,
bookName varchar(255) NOT NULL,
FOREIGN KEY (PublisherId) REFERENCES Publisher (publisherId)
);
desc Books;
과제 2
-- **별(`Star`) 테이블**
-- 1. `starId` 컬럼을 가집니다. 기본 키 조건을 설정합니다.
-- **별 세부정보(`StarInfo`) 테이블**
-- 1. `starInfoId` 컬럼을 가집니다. 기본 키 조건을 설정합니다.
-- 2. 이름(`name`) 컬럼을 가집니다. 문자열 타입을 가집니다.
-- 3. 밝기(`magnitude`) 컬럼을 가집니다. 문자열 타입을 가집니다.
-- 4. 거리(`distance`) 컬럼을 가집니다. 문자열 타입을 가집니다.
-- **이외 요구사항**
-- - **별**은 1개의 **별 세부정보**를 가질 수 있습니다.
-- - **이름, 밝기, 거리** 컬럼은 NULL 값을 가질 수 없습니다.
CREATE TABLE Star
(
starId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY
);
CREATE TABLE StarInfo
(
starInfoId int(11) NOT NULL AUTO_INCREMENT RRIMARY KEY,
StarId int(11) NOT NULL UNIQUE, -- UNIQUE 를 설정하면 1개만 효과
name varchar(255) NOT NULL,
magnitude varchar(255) NOT NULL,
distance varchar(255) NOT NULL,
FOREIGN KEY (StarId) REFERENCES Star (starId)
);
과제 3
-- **아이돌(`Idol`) 테이블**
-- 1. 이름(`name`) 컬럼을 가집니다.
-- 2. 나이(`age`) 컬럼을 가집니다.
-- 3. 성별(`gender`) 컬럼을 가집니다.
-- **소속사(`production`) 테이블**
-- 1. 회사명(`productionName`) 컬럼을 가집니다.
-- 2. 주소(`address`) 컬럼을 가집니다.
-- **소속사 멤버(`ProductionMember`) 테이블**
-- 1. 아이돌과 소속사를 연결해줍니다.
-- 2. 아이돌의 소속사 데뷔 날짜(`debutDate`) 컬럼을 가집니다.
-- **이외 요구사항**
-- - **아이돌**은 **소속사**를 가지지 않거나, 여러개를 가질 수 있습니다.
-- - **아이돌**의 **이름**은 중복될 수 없습니다.
-- - **소속사**는 **아이돌**을 가지지 않거나, 여러명을 소속시킬 수 있습니다.
-- - **소속사**의 **회사명**은 중복될 수 없습니다.
-- - **소속사**의 **주소**는 중복될 수 없습니다.
CREATE TABLE Idol
(
idolId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL UNIQUE,
age int(11) NULL,
gender enum('M', 'F') NOT NULL
);
CREATE TABLE Production
(
productionId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
productionName varchar(255) NOT NULL UNIQUE,
address varchar(255) NOT NULL UNIQUE
);
CREATE TABLE ProductionMember
(
productionMemberId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
IdolId int(11) NOT NULL,
ProductionId int(11) NOT NULL,
debutDate date NOT NULL,
FOREIGN KEY (IdolId) REFERENCES Idol (idolId),
FOREIGN KEY (ProductionId) REFERENCES Production (productionId)
);
'TIL' 카테고리의 다른 글
Nodejs 강의 숙련 게시판 프로젝트(4) prisma (0) | 2024.05.23 |
---|---|
Nodejs 강의 숙련 JWT(Json Web Token) (3) ps.콜백함수 (0) | 2024.05.23 |
Nodejs 강의 숙련 MySQL(1) (0) | 2024.05.21 |
Node.js 입문 개인과제 (2) < 회고 > (0) | 2024.05.21 |
Node.js 입문 개인과제 (1) <회고> (0) | 2024.05.21 |