Имам 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