У меня есть база данных MySQL, содержащая только одну таблицу, имеющую 100 строк и 12 столбцов: ID (первичный ключ), NAME, LATITUDE, LONGITUDE, TYPE, COUNTRY, CONTINENT, DESCRIPTION_PATH, STORY_PATH, PICTURE_PATH, ICON_PATH и VIDEO_PATH. Как вы думаете, нормально ли хранить все данные в одной таблице или данные следует распределять по нескольким таблицам?
Это хорошо спроектированная реляционная база данных только с одной таблицей?
comment
Я рекомендую прочитать о нормализации базы данных, чтобы избавиться от догадок при разработке схемы.
- person Filburt   schedule 17.05.2013
Ответы (1)
Это совершенно прекрасный дизайн таблицы, если для ваших строк имени требуется не более одного описания, одной истории, одного изображения, одного значка и одного видео.
Как только вы захотите, чтобы у кого-то было две картинки, вам нужно создать еще одну таблицу для картинок и хранить по одной картинке в строке, каждая из которых ссылается на вашу первую таблицу.
Например:
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 из первой таблицы.
person
Bill Karwin
schedule
16.05.2013
PICTURE_PATH — это URL-ссылка на папку в моей файловой системе. Внутри этой папки для каждой строки определено 5 изображений, которые я извлекаю одно за другим из базы данных в приложении Java. Но я полагаю, это не то, что вы на самом деле имели в виду, не так ли? Для каждой отдельной строки у меня есть только значение каждого столбца. Так что думаю должно быть нормально...
- person MichalB; 17.05.2013
Да, если у вас есть только одно изображение path в строке, это нормально.
- person Bill Karwin; 17.05.2013
Один маленький вопрос - как мне назвать базу данных, содержащую всего одну таблицу? Могу ли я по-прежнему называть это реляционной базой данных?
- person MichalB; 17.05.2013
Конечно, это нормально. Реляционный не означает отношения между таблицами. Это означает, что таблица является отношением в математическом смысле.
- person Bill Karwin; 17.05.2013