Привет, ребята, мне было интересно, есть ли лучший способ сделать какие-нибудь таблицы MySQL.Я должен оценить (в приложении php), как задача была выполнена на основе 9 атрибутов. Проблема в том, что один раз в год столбцы могут меняться (имя не количество полей оценки)
CREATE TABLE IF NOT EXISTS `grades` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`score_id` int(10) NOT NULL,
`task_number` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
`assigned_to` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`location` varchar(3) COLLATE utf8mb4_unicode_ci NOT NULL,
`completed_at` date NOT NULL,
`priority` tinyint(1) NOT NULL DEFAULT '0',
`worknotes` tinyint(1) NOT NULL DEFAULT '0',
`client_com` tinyint(1) NOT NULL DEFAULT '0',
`closure_info` tinyint(1) NOT NULL DEFAULT '0',
`status` tinyint(1) NOT NULL DEFAULT '0',
`category` tinyint(1) NOT NULL DEFAULT '0',
`ci` tinyint(1) NOT NULL DEFAULT '0',
`timecard` tinyint(1) NOT NULL DEFAULT '0',
`resolution_time` tinyint(1) NOT NULL DEFAULT '0',
`validated` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT
CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
COMMIT;
ТакМоя первая мысль состоит в том, чтобы создать еще одну таблицу с именем атрибута и иметь две такие таблицы:
CREATE TABLE IF NOT EXISTS `grades` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`score_id` int(10) NOT NULL,
`task_number` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
`assigned_to` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
`location` varchar(3) COLLATE utf8mb4_unicode_ci NOT NULL,
`completed_at` date NOT NULL,
`grade1` tinyint(1) NOT NULL DEFAULT '0',
`grade2` tinyint(1) NOT NULL DEFAULT '0',
`grade3` tinyint(1) NOT NULL DEFAULT '0',
`grade4` tinyint(1) NOT NULL DEFAULT '0',
`grade5` tinyint(1) NOT NULL DEFAULT '0',
`grade6` tinyint(1) NOT NULL DEFAULT '0',
`grade7` tinyint(1) NOT NULL DEFAULT '0',
`grade8` tinyint(1) NOT NULL DEFAULT '0',
`grade9` tinyint(1) NOT NULL DEFAULT '0',
`validated` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
COMMIT;
и
CREATE TABLE IF NOT EXISTS `evaluation_fields` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
COMMIT;
INSERT INTO `evaluation_fields` (`id`, `name`) VALUES
(1, 'Priority'),
(2, 'Worknotes'),
(3, 'Client Com'),
(4, 'Closure information'),
(5, 'Status management'),
(6, 'Category management'),
(7, 'CI identification', ),
(8, 'Timecard management'),
(9, 'Resolution Time');
COMMIT;
Как бы вы порекомендовали это сделать?Спасибо заранее за ваше время.Надеюсь, у меня есть какой-то смысл