2013-05-16 2 views
1

ID (기본 키), NAME, LATITUDE, LONGITUDE, TYPE, COUNTRY, CONTINENT, DESCRIPTION_PATH, STORY_PATH, PICTURE_PATH, ICON_PATH 및 VIDEO_PATH와 같은 100 개의 행과 12 개의 열이있는 하나의 테이블 만 포함하는 MySQL 데이터베이스가 있습니다. 모든 데이터를 하나의 테이블에 보관하는 것이 좋다고 생각하거나 더 많은 테이블에 데이터를 분산해야합니까?하나의 테이블만으로 관계형 데이터베이스가 잘 설계 되었습니까?

+0

[데이터베이스 정규화] (http://en.wikipedia.org/wiki/Database_normalization)에서 스키마 디자인에 대한 추측을 읽는 것이 좋습니다. – Filburt

답변

3

이름 행에 하나의 설명, 한 이야기, 한 장의 그림, 한 개의 아이콘 및 한 개의 비디오 만 있으면 완벽하게 훌륭한 표 디자인입니다.

다른 사람이 두 장의 사진을 갖게 되 자마자 사진을위한 다른 테이블을 만들고 각 테이블이 첫 번째 테이블을 참조하는 한 행당 하나의 그림을 저장해야합니다. 예를 들어

:

CREATE TABLE Pictures (
    picture_id INT, 
    name_id INT, 
    picture_path VARCHAR(100), 
    PRIMARY KEY (picture_id, name_id) 
    FOREIGN KEY (name_id) REFERENCES Names (id) 
); 

그리고 당신은 물론 첫 번째 테이블에서 picture_path 열을 제거하는 것입니다.

+0

PICTURE_PATH는 파일 시스템의 폴더에 대한 URL 링크입니다. 이 폴더 안에는 Java 응용 프로그램의 데이터베이스에서 하나씩 검색하는 모든 행에 대해 5 개의 그림이 정의되어 있습니다. 하지만이게 당신이 진짜 의미했던 것이 아니 겠지? 모든 단일 행에 대해 각 열의 값만 있습니다. 그래서 나는 그것이 괜찮을 것 같아요. – MichalB

+0

예, 하나의 그림 * 경로 * 당 행이 있다면, 그건 괜찮습니다. –

+0

하나의 작은 질문 - 어떻게 하나의 테이블을 포함하는 데이터베이스를 호출합니까? 관계형 데이터베이스라고 할 수 있습니까? – MichalB

관련 문제