Задавайте вопросы, мы ответим
Вы не зашли.
Помогите нормализовать БД
сейчас она имеет такую структуру
--
-- Структура таблицы `categories`
--
CREATE TABLE `categories` (
`c_id` int(4) unsigned NOT NULL auto_increment,
`s_id` tinyint(4) unsigned default '0', //парент id
`c_name` varchar(100) default 'NOT NULL',// тайтл
`c_url` varchar(100) default 'NOT NULL',//короткая ссылка
`c_descr` varchar(255) default 'NOT NULL',//дескрипшион
`c_text` text NOT NULL,// текст
`c_time_created` datetime default '0000-00-00 00:00:00'//время добавления
PRIMARY KEY (`c_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
статьи
статья 1
статья 2
фильмы
научные
документальные
Фото
фотообои
интересное фото
c_id s_id c_name
1 0 статьи
2 0 фильмы
3 0 Фото
4 1 статья 1
5 2 научные
6 3 фото
и таблицы
-- Структура таблицы `articles`
CREATE TABLE `articles` (
`a_id` int(11) unsigned NOT NULL auto_increment,
`a_cat` tinyint(4) unsigned default NULL, //c_id categories
`a_title` varchar(255) default NULL,// тайтл
`a_url` varchar(100) default NULL, //короткая ссылка
`a_descr` text, //дескрипшион
`a_text` text,//сам текст
`a_author` varchar(100) default NULL, //автор
`a_date` datetime default '0000-00-00 00:00:00', //дата добавления
`a_m_img` varchar(100) default NULL, //путь миниатюры
`a_w_m_img` tinyint(2) unsigned default NULL, //высота миниатюры
`a_h_m_img` tinyint(2) unsigned default NULL, // ширина миниатюры
PRIMARY KEY (`a_id`),
UNIQUE KEY `a_url` (`a_url`),
UNIQUE KEY `a_title` (`a_title`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Статьи' ;
-- Структура таблицы `photo`
CREATE TABLE `photo` (
`photo_id` int(11) unsigned NOT NULL auto_increment,
`photo_cat` int(4) unsigned default NULL,//c_id categories
`photo_title` varchar(255) default 'NOT NULL',// тайтл
`photo_url` varchar(255) default 'NOT NULL',//короткая ссылка
`photo_desc` text NOT NULL,//дескрипшион
`photo_text` text NOT NULL,//сам текст
`photo_time_created` datetime default '0000-00-00 00:00:00'//время добавления
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
-- Структура таблицы `video`
CREATE TABLE `video` (
`v_id` int(11) unsigned NOT NULL auto_increment,
`v_cat` tinyint(5) NOT NULL,//c_id categories
`v_url` varchar(255) default NULL,//короткая ссылка
`v_title` varchar(255) NOT NULL,// тайтл
`v_desc` varchar(255) default NULL, //дескрипшион
`v_about_movie` text,//сам текст
`v_m_img` varchar(255) default NULL,//путь миниатюры
`v_w_m_img` int(3) default NULL,//высота миниатюры
`v_h_m_img` int(3) default NULL, // ширина миниатюры
`v_date` datetime default '0000-00-00 00:00:00',//время добавления
`v_links` tinyint(7) NOT NULL, // перечень урлов для скачивания
PRIMARY KEY (`v_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
Отредактированно serjinio (02.08.2009 22:56:30)
Неактивен
А что сделать то хотите? Объединить разные данные в одну табличку?
Неактивен
Я просто думаю что структура неправильная потому что если мы добавим новую сущность например "разное" то придется добавлять новую таблицу с описанием свойств этой сущности.Может есть хоть какие-то предложения как оптимизировать эту структуру
Неактивен
Таблички у Вас имеют разную структуру (хотя и есть несколько общих полей).
Вы можете попробовать объединить общие поля в одну таблицу, однако поля,
характеризующие конкретную сущность все равно прийдется хранить в отдельной
таблице, т.е. объединить разное не удастся (ну разве что создав колонку «прочее»
и запихав туда все, что не влезает в общие колонки, но это не очень хорошее
решение).
Неактивен