2013-05-16 3 views
1

У меня есть база данных MySQL, содержащая только одну таблицу, имеющую 100 строк и 12 столбцов: ID (первичный ключ), NAME, LATITUDE, LONGITUDE, TYPE, COUNTRY, CONTINENT, DESCRIPTION_PATH, STORY_PATH, PICTURE_PATH, ICON_PATH и VIDEO_PATH. Считаете ли вы, что все в порядке хранить все данные в одной таблице или данные должны распространяться в других таблицах?Это хорошо спроектированная реляционная база данных только с одной таблицей?

+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-ссылка на папку в моей файловой системе. Внутри этой папки есть 5 изображений, определенных для каждой строки, которую я получаю один за другим из базы данных в приложении Java. Но я думаю, это не то, что вы на самом деле имели в виду, не так ли? Для каждой отдельной строки у меня есть только значение каждого столбца. Поэтому я думаю, что это должно быть нормально ... – MichalB

+0

Да, если у вас есть только одна картинка * путь * для каждой строки, тогда все в порядке. –

+0

Один маленький вопрос - как я могу назвать базу данных, содержащую только одну таблицу? Могу ли я назвать его реляционной базой данных? – MichalB