Paweł Kubasiak Artysta Programista
Temat: Problem z optymalizacją MySQL
Witam mam taki schemat bazy danych :
CREATE TABLE IF NOT EXISTS `directory` (
`id_directory` int(11) NOT NULL,
`url` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id_directory`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `project` (
`id_project` int(11) NOT NULL AUTO_INCREMENT,
`id_user` int(11) NOT NULL,
`id_database` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`description` text,
`site_url` varchar(100) DEFAULT NULL,
`site_title` varchar(100) DEFAULT NULL,
`site_description` text,
`site_keywords` varchar(255) DEFAULT NULL,
`site_keywords_value` int(11) DEFAULT NULL,
`site_email` varchar(100) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_project`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `project_direcory` (
`id_project` int(11) NOT NULL,
`id_directory` int(11) NOT NULL,
`status` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id_project`,`id_directory`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Moje pytanie brzmi : zakładając że w tabeli directory bede miał około 7 tysięcy wierszy w tabeli project_direcory będzie mega dużo powiązań załóżmy że pojawi się tylko 100 projektów a liczba wpisów w tabeli project_direcory będzie wynosiła 7000*100 = 700 000. Jak to inaczej można rozwiązać ??
myślałem żeby w tabeli direcory wprowadzić np. nowe pole tekstowe status_success gdzie bym wpisywał po przecinku czy innym znaku id projektów. Ale jak po takiej polu później coś wyszukać ??
w celu zobrazowania jak wyobrażam sobie taką tabele direcory po modyfikacji :
CREATE TABLE IF NOT EXISTS `directory` (
`id_directory` int(11) NOT NULL,
`url` varchar(45) DEFAULT NULL,
`staus_success` text,
`staus_error` text,
PRIMARY KEY (`id_directory`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
i status_success wypełniał bym tak : 34,12,12,45,21,
gdzie liczy po przecinkach to id projektów;
Czy to dobry sposób na optymalizacje tej tabeli project_direcory ??
jak wyszukiwać potem id w polu status_success ????
Z góry dzięki za odp.