이것은 온라인 라이브러리 카탈로그를위한 간단한 데이터베이스 모델입니다. 나는 가능하면 정상화하려고 노력하고있다. 내가 바꿔야하거나 다르게해야한다고 생각하니?내 간단한 서적 카탈로그 스키마를 표준화하는 데 도움이
예를 들어, 나는 테이블 저자에 대해 확신하지 못합니다. 그것은 또한 기본 키인 "name"컬럼을 하나 뿐이며 다른 테이블의 외래 키로도 사용합니다. 그게 좋은 습관인가요? 또한 하나의 열 대신에 두 개의 열 ("first_name"및 "last_name")을 넣어야합니까?
CREATE TABLE books (
isbn VARCHAR2(13) NOT NULL PRIMARY KEY,
title VARCHAR2(200),
summary VARCHAR2(2000),
date_published DATE,
page_count NUMBER
);
CREATE TABLE authors (
name VARCHAR2(200) NOT NULL PRIMARY KEY
);
CREATE TABLE books_authors_xref (
author_name VARCHAR2(200),
book_isbn VARCHAR2(13),
CONSTRAINT pk_books_authors_xref PRIMARY KEY (author_name, book_isbn),
CONSTRAINT fk_books_authors_xref1 FOREIGN KEY (author_name) REFERENCES authors (name),
CONSTRAINT fk_books_authors_xref2 FOREIGN KEY (book_isbn) REFERENCES books (isbn)
);
CREATE TABLE book_copies (
barcode_id VARCHAR2(100) NOT NULL PRIMARY KEY,
book_isbn VARCHAR2(13),
CONSTRAINT fk_book_copies FOREIGN KEY (book_isbn) REFERENCES books (isbn)
);
을 단지 제안 -. 당신이 NOT NULL 필요가 없습니다 PRIMARY KEY로 선언 된 열에 대한 제한 조건. –