MP3Sugar, декомпозиция SQL БД
Суббота, Ноябрь 18, 2006 в 1:58 am в рубрике ЛичноеСкачал с MP3Sugar дамп базы данных MySQL, не обнаружил там никаких признаков реляционности. И поскольку работать с ним в таком виде совершенно невозможно, провел частичную декомпозицию исключительно с целью упростить извлечение данных по конкретному альбому, исполнителю и стилю исполнения. Запросы приведенные ниже создают ряд новых таблиц, и копируют в них данные, индексы по вкусу.
CREATE TABLE `file` (
`id_singer` int(10) unsigned NOT NULL default 0,
`id_album` int(10) unsigned NOT NULL default 0,
`id_file` int(10) unsigned NOT NULL default 0,
`id_style` int(10) unsigned NOT NULL default 0,
`id_geenre` int(10) unsigned NOT NULL default 0,
`name_file` varchar(255) NOT NULL default "",
`time_file` int(10) unsigned NOT NULL default 0,
`size_file` int(10) unsigned NOT NULL default 0,
`country` varchar(255) NOT NULL default "",
`bitrate_file` varchar(255) NOT NULL default "",
PRIMARY KEY (`id_file`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `singer` (
`id_singer` int(10) unsigned NOT NULL default 0,
`name_singer` varchar(255) NOT NULL default "",
PRIMARY KEY (`id_singer`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `album` (
`id_album` int(10) unsigned NOT NULL default 0,
`id_singer` int(10) unsigned NOT NULL default 0,
`name_album` varchar(255) NOT NULL default "",
`year_album` year(4) NOT NULL default "0000",
PRIMARY KEY (`id_album`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `style` (
`id_style` int(10) unsigned NOT NULL default 0,
`name_style` varchar(255) NOT NULL default "",
PRIMARY KEY (`id_style`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `geenre` (
`id_geenre` int(10) unsigned NOT NULL default 0,
`name_geenre` varchar(255) NOT NULL default "",
PRIMARY KEY (`id_geenre`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `singer` SELECT DISTINCT `id_singer`, `name_singer` FROM mp3dump;
INSERT INTO `album` SELECT DISTINCT `id_album`, `id_singer`, `name_album`, `year_album` FROM mp3dump;
INSERT INTO `style` SELECT DISTINCT `id_style`, `name_style` FROM mp3dump;
INSERT INTO `geenre` SELECT DISTINCT `id_geenre`, `name_geenre` FROM mp3dump;
INSERT INTO `file` SELECT DISTINCT `id_singer`, `id_album`, `id_file`, `id_style`, `id_geenre`, `name_file`, `time_file`, `size_file`, `country`, `bitrate_file` FROM mp3dump;
© zvonko.biz, 2006. | Постоянная ссылка | Комментарии
Интересна эта тема? Посмотрите архив сообщений по теме технология.
Найдено на: zvonko.biz
Ваша оценка:


(Всего оценок: 2, средняя оценка: 4.5 из 5)
